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

WWDC にひとりで参加する人向け情報

WWDC 2011 に行ってきたの続編。 自費で1人で参加したのだけれども、当時あまりそういう人向

記事を読む

no image

iPadアプリ おんぷちゃん が雑誌に紹介されました

いろいろあって、iPhone/iPad アプリのおんぷちゃん がムジカノーヴァ2011年2月号で紹介

記事を読む

no image

[iPhone SDK] Significant-change Location Service の挙動

iPhoneで位置情報取得を連続して行うと、あっという間に電池が無くなってしまう。これは、位置情報取

記事を読む

[iOS SDK] ObjectAL で EXC_BAD_ACCESS発生

30日から休みだったので、年末は奥さんの実家に帰りつつ、2016年に取り組んでいたアプリの仕上げを行

記事を読む

Anker の高耐久ライトニングケーブルを買ってみた

立て続けに2本ライトニングケーブルが壊れたので、ふんぱつして高級ケーブルを買ってみた。 たしかに

記事を読む

no image

[iPad SDK] Popover中にTableViewを入れて、タップしたらPopoverを閉じたい

今作っている リズムくん for iPad で、拍子記号を Popover で選択できるようにしよう

記事を読む

no image

災害時のためのiPhone充電機器を探してみる

3/11(金)の2011年東北地方太平洋沖地震の後、宮城と岩手の親類と連絡が取れず、3/14(月)の

記事を読む

MangaONEでARMS読み放題期間延長

MangaONE で2015/12/29まで皆川亮二氏の名作ARMSが読み放題、ということで暇をみ

記事を読む

no image

ついにヒレガス本第3版が出るらしい

以前から、いつかは出るかな、いやもういまさらでないかなと思っていたヒレガス本の第3版が11月についに

記事を読む

no image

MacPeople 2010.02

定期購読している MacPeople 2010年2月号が今日届いた。 今回はメールアプリとUbunt

記事を読む

Message

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

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

進撃の巨人10周年キャンペーン

2019/09/18まで、進撃の巨人10周年キャンペーン最終回まで一

ブログネタメモ

書きたいことがいろいろあるのだが書けていない。そのうちに忘れてしまう

リズムくんがタイ表示に対応しました

長らくお待たせしました。リズム学習アプリ「リズムくん」iPhone版

さくらのVPSにwordpress + gitlabを入れる

さくらのVPSに apache + wordpressをインストール

Apple Watch series 2の電池が1日もたなくなってしまった

一日もたないので、時刻を見ようと思っても見れない。時計としての体をな

→もっと見る

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