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

[英単語学習法] MyShortcuts を使って通知センターからいろいろな辞書を引いてみる

MyShortcuts+Viewer 価格: ¥100

記事を読む

no image

[iOS SDK] Pebble腕時計対応iOSアプリを作る

英単語学習アプリ WordLearnをリリースしましたに書いたけれども今Pebble腕時計対応iOS

記事を読む

no image

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 機能が搭載されたが、搭

記事を読む

no image

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

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

記事を読む

no image

2009年11月発売のiPhone SDK関連書籍

11月も良さそうなiPhone SDK本が次々と発売される。 Mac OS X Cocoa プログラ

記事を読む

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 ↑