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

iOS 4.2.1, iOS SDK 4.2, Xcode 3.2.5 にアップデート

iPhone 3GSを、昨晩でたと思われる、iOS 4.2.1にアップデートしてみる。 iOS 4.

記事を読む

no image

EverLearn 1.3.0 をリリースしました

EverLearn 1.3.0 をリリースしました。(2013/10/25 公開) これまでの成績

記事を読む

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

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

記事を読む

EverLearn 1.9.0 に音声認識機能を追加しました

EverLearn 1.9.0 にて音声認識機能を追加しました。ホーム画面から、マイクボタンを押して

記事を読む

iOS16でaurioTouch の inBufferFramesが1になる

https://developer.apple.com/library/archive/sampl

記事を読む

Macでコマンドラインで一括オーディオフォーマット変換 afconvert

iOSアプリの場合、効果音のフォーマットは caf がよいらしい。 ダウンロードしたファイルはca

記事を読む

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

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

記事を読む

おんぷちゃん for iPad リアル鍵盤で回答

おんぷちゃん for iPad は五線譜上に表示される音符をスクリーン上のキーボードや、USBやB

記事を読む

no image

Amazon Book Marker 取り下げ

昨日2010/01/16(土)の朝に米Amazonより、ライセンス規約に違反していると警告がきたため

記事を読む

no image

SHIELD iShell iPhone 4 用ケース購入

奥さんのiPhone 4用に SHIED iShell iPhone 4 シェルカバーを購入。Ama

記事を読む

Message

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

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

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

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

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

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

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

Vision Pro カバーケースを買ってみた

[itemlink post_id="11629"]

→もっと見る

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