NSURLConnnection オブジェクトをいつ解放するか 2011/08/06
NSURLConnection の
-[NSURLConnection initWithRequest:delegate:]
で生成した NSURLConnection オブジェクトは下記のどれで処理をすればよいのかを知りたくなった。
- プロパティに保持しておいて後でreleaseする
- autoreleaseにする
- 保持せず、後から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
しかし意図せず解放されて問題が起きることはないのかなと思ったりもする。
関連記事
-
-
[英単語学習法] MyShortcuts を使って通知センターからいろいろな辞書を引いてみる
MyShortcuts+Viewer 価格: ¥100
-
-
[iOS SDK] Pebble腕時計対応iOSアプリを作る
英単語学習アプリ WordLearnをリリースしましたに書いたけれども今Pebble腕時計対応iOS
-
-
EverLearn Ver.1.2.0 が公開されました
EverLearn Ver.1.2.0 が昨日公開されました。 今回は8/28にSubmitして、
-
-
EverLearn 1.9.0 に音声認識機能を追加しました
EverLearn 1.9.0 にて音声認識機能を追加しました。ホーム画面から、マイクボタンを押して
-
-
Apple Special Event 2011
2011年は iPhone 4s が発表された。 https://japanese.enga
-
-
[iOS SDK][Kindle] iOS7開発テクニック集 Xcode編
iOS7開発テクニック集 Xcode編 ZuvolaZuvola 2014
-
-
heroku Cedar-10からCedar-14に引越し
2015/11/04 に Cedar-10 stack が終了となる連絡が heroku からきたの
-
-
[iOS SDK] アプリを起動しない 3D quick action は実現できるか
iPhone 6s / iPhone 6s Plus から 3D Touch 機能が搭載されたが、搭
-
-
[iPhone SDK] iPhone SDK 開発のレシピ
ずいぶん昔に買ったけれどもブログに書くのを忘れていた。 出版社(秀和システム)の紹介ページ
-
-
2009年11月発売のiPhone SDK関連書籍
11月も良さそうなiPhone SDK本が次々と発売される。 Mac OS X Cocoa プログラ