NSURLConnnection オブジェクトをいつ解放するか 2011/08/06

公開日: : iPad, iPhone ,

NSURLConnection の

-[NSURLConnection initWithRequest:delegate:]

で生成した NSURLConnection オブジェクトは下記のどれで処理をすればよいのかを知りたくなった。

  1. プロパティに保持しておいて後でreleaseする
  2. autoreleaseにする
  3. 保持せず、後からconnectionDidFinishLoadingなどのdelegateメソッドでreleaseする

しかし今日2011/08/06 の時点で自分が NSURLConneciton でGoogle検索すると、
Geekなぺーじ : NSURLConnection (非同期) [1]
とか中途半端なページばかりが見つかり、これらを参考にするとメモリリークが発生しそうなのでメモを残してみる。

今回の場合 Mac OS X Developer Library の URL Loading System Programming Guide: Using NSURLConnection が一番参考になりそう。
これによると、
3. 保持せず、後からdelegateメソッドでreleaseする
が正しいようだ。
ただ、下記のように書くと Xcode の Analyze で Potential leak of an object allocated on line xxx and stored into ‘conn’ といわれてしまう。後で release しているので問題ないのだが、AnalyzeはそこまでAnalyzeできないようだ。

    // Returns an initialized URL connection and begins to load the data for the URL request.    
	NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if(conn) {
        receivedData = [[NSMutableData alloc]init];	        
    }

自分の以前のコードは 2. autorelease にする で書かれていて、これはこれで普通に動いているけれども場合によっては問題が起きることもありそうだ。
iphone – NSURLConnection leak? – Stack Overflow
に書かれている。

NSURLConnection には、-[NSURLConnection initWithRequest:delegate:] 以外に +[NSURLConnection connectionWithRequest:delegate:] もあり、こちらを使えば release を心配する必要はない。
iphone – Memory management for NSURLConnection – Stack Overflow
しかし意図せず解放されて問題が起きることはないのかなと思ったりもする。

関連記事

no image

Let’s talk iPhone イベント 2011/10/04

今回のイベントも、楽しみにしながら寝て、早朝に起きてから知ることにした。 今回、事前に行われていた予

記事を読む

“I think the stainless steel looks beautiful when it wears” from The Perfect Thing

傷が付きやすいと言われている iPhone 7 ジェットブラック。ケースを付けるか迷ったら、下記

記事を読む

4年ぶりにLogLocationsをアップデート

4年ぶりにLogLocationsのアップデート版を作成中。3年間更新していなかったので、画面がフラ

記事を読む

no image

Admob に関して少し調べてみた

iPhoneアプリとAndroidアプリでAdmobを使って広告を表示してみているが、いまだに管理画

記事を読む

no image

[iPhone5] 使用開始5日目の感想

au iPhone5を発売日翌日(9/22)に購入してから5日経ったので感想を書いてみる。 し

記事を読む

Apple iPad まとめ

(2010/01/28 朝5時あたりのapple.comのトップページ) 2010/01/27(水

記事を読む

au iPhone 6 Plus 64GB Silver 届いた

9/19 の発売以来、悩み抜いた結果 au で iPhone 6 Plus 64GB S

記事を読む

no image

iPhone OS 3.0 インストール

OSのメジャーアップデートの機会は1年に一度だろう、ということで貴重な機会なのとbeta 5になりさ

記事を読む

no image

Universal アプリのテスト

iPhoneアプリとBluetoothで通信するUniversalなアプリをしばらく作っていたが、よ

記事を読む

[iPhone6 Plus] はじめて保護ガラスを貼ってみた JTT Online Glass Protector

会社の知り合いが色をまちがって購入したということで、iPhone6 Plus 用保護ガラスを

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

TORRAS iPhone 16 Pro Max用ケース

自分はiPhoneはケースを付けない派で、iPhone 12

iPhone 16 Pro Max 購入

iPhone 16 Pro Max 256GB 189000

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

→もっと見る

  • 2011年8月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
PAGE TOP ↑