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
しかし意図せず解放されて問題が起きることはないのかなと思ったりもする。
関連記事
-
-
Corona SDK 新バージョンリリース
Corona SDKの新バージョンが出た。 Corona SDK: New additions an
-
-
Admob に関して少し調べてみた
iPhoneアプリとAndroidアプリでAdmobを使って広告を表示してみているが、いまだに管理画
-
-
Learn iPhone and iPad Cocos2D Game Development
洋書だけれども、ApressからCocos2d を使ってゲーム開発する本として Learn iPho
-
-
スマートフォン手袋を買ってみた 2011
去年買ったスマートフォン用手袋は石油くさくてかなりつらい思いをしながら使ってましたが、今年もこりず
-
-
App Storeでのアプリ最低価格が突然115円から85円に 2011/07/14
App Storeでのアプリ最低価格が突然日本時間2011/07/14(木)未明に115円から85円
-
-
LogLocation 1.3.1 で和暦問題に対応しました
4年ぶりに位置情報ログ取りアプリ LogLocations をアップデートしたところ、レビューにて不
-
-
新型 su-pen 購入
新型Su-penを買おうと思いAmazonのカートに入れていたら、翌日見たら売り切れていた...
-
-
iPhoneアプリケーションプログラミング 新居雅行 購入
今年6月末にでたときには、「またiPhoneプログラミング本が出たんだなー」「表紙が地味だなー」「特
-
-
[iOS SDK] SSPieProgressView を使ってみた
iOS オープンソースライブラリ徹底活用 菊田剛著 秀和システム | DevCafeJp で紹介さ
-
-
Apple iPad まとめ
(2010/01/28 朝5時あたりのapple.comのトップページ) 2010/01/27(水