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
しかし意図せず解放されて問題が起きることはないのかなと思ったりもする。

関連記事

iTunes Connect でアプリページを表示できない

いつからかわからないけれども、iTunes Connect で自分のアプリを表示できなくなってしまい

記事を読む

no image

[iPhone SDK] Apple Push Notifiction Service (APNs)対応 その1

Apple Push Notification Service (以下、APNs) を使ったiPho

記事を読む

Reject 履歴 おんぷちゃん 1.9.0

久しぶりに おんぷちゃん をアップデートしようとしたところ、"Guideline 2.3.7 - P

記事を読む

no image

iPhone&Androidアプリ内課金プログラミング完全ガイド

こんなマニアックな本が11月に出ていたらしい。 立ち読みしてよさそうだったら買ってこよう。 売れ

記事を読む

ドラムちゃんに電子ドラムiWordを接続する

ドラム譜学習アプリ「ドラムちゃん」に、安価なMIDI電子ドラム iWord を接続する方法を説明し

記事を読む

Xcodeの Console出力をクリアするキーバインド

いつも忘れるので、メモとして残しておく。Command(⌘)+ Kその他はこちら。 Menu Com

記事を読む

no image

Pro iPhone Game Development は発売延期らしい

面白そうだったので結構前にAmazonで注文したのだが、ずっと発売されず、おかしいとおもって発売元の

記事を読む

ドラムアプリ「ドラムちゃん」用に電子ドラムiWordを買ってみた

自作ドラム学習アプリ「ドラムちゃん」には以前からMIDIドラムを接続することができたが、これまでな

記事を読む

iPhone X simulator が表示されない

dyld: dyld_sim is not compatible with the loaded p

記事を読む

コードちゃん 1.0.3 アップデート

コード学習アプリ コードちゃん 1.0.3をアップデートしました。ダイアトニックコードの Bmb5

記事を読む

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

watchOS6でWKRefreshBackgroundTaskが動かない

自作アプリ Watch Battery Loggerの改良版を作って

Xcode 11.2 Release

Xcode 11.2 がようやくリリースされた。これにより、

dyld`__abort_with_payload:でクラッシュ WatchKitApp on Xcode11.1

Xcode 11.0 や Xcode11.1で以前はビルドし

【電子版】雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本

台風で家にこもっているので、気になっていた 【電子版】雰囲気でOAu

MacFan 2019年11月号購入

毎年この時期は必ず Mac雑誌を買っている。発売されたばかりのiPh

→もっと見る

  • 2011年8月
    « 7月   9月 »
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
PAGE TOP ↑