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

[iPhone SDK] iPhone SDK 開発のレシピ

ずいぶん昔に買ったけれどもブログに書くのを忘れていた。 出版社(秀和システム)の紹介ページ

記事を読む

かなりスパルタンなピアノの調律アプリ

平均律を調べていて発見。 ピアノの調律ゲーム 〜平均律訓練アプリ〜 驚くほど難しい。自

記事を読む

no image

TableView関連で苦労

iPhoneアプリ開発をやっていると数日に一度何らかの問題にぶつかって、しばらくはまる。本を読んだり

記事を読む

LogLocation 1.3.1 で和暦問題に対応しました

4年ぶりに位置情報ログ取りアプリ LogLocations をアップデートしたところ、レビューにて不

記事を読む

no image

iPhone SDK開発のネタ帳 マルチタッチ対応

iPhone SDK開発のレシピにはいろいろ役に立つ内容があったので、同じようなことをブログに書いて

記事を読む

no image

Corona SDK本が出るらしい 「Corona SDK」ハンドブック2011

値段的に一般人向けではないけれども、Corona SDK 本が出るらしい。 自分がCorona SD

記事を読む

Withings WS-50 不具合発生

昨年12月に購入した Withings WS-50をまずまず便利に使っていたのだが、数週間前から、電

記事を読む

no image

Cocos2dで作る iPhone&iPadゲームプログラミング

ついに良さそうなcocos2d本が出るらしい。6/24(金)発売予定。488ページ、3980円。 し

記事を読む

Siri Shortcuts に対応

正月休み中なので、ブログ記事が書きやすい。毎年この時期だけはよくブログを書いている気がする。

記事を読む

iPad 発売 2010/04/03

日本時間4/3 17:00あたりに、Appleから iPad is here. メールが来てい

記事を読む

Message

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

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

→もっと見る

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