スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS][NSURLConnection sendSynchronousRequest:returningResponse:error:]

NSURLResponse *urlResponse = nil;
NSError *error = nil;
NSData *returnData =
 [[NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]autorelease];
というソースを書いていた時の話。

返ってきた値が空っぽになっている。あれ?
返り値のNSDataにはautoreleaseがかかっているのか?
なんて考えている私は、まずallocとreleaseのことなんかさっぱり知らない。

「deallocしてんのにreleaseすんじゃねぇ!!」とコンソールで怒られたりして悩んでいました。

そもそもallocしてないのにreleaseなんてしなくてよかったんだ。と気付くのに1日かかりました。

基本中のキホンですが、こういうメソッドなんかで呼び出す値にはreleaseをする必要はありません。
メソッド中に利用された値、返り値などはそのメソッド中でreleaseするお約束があります。

ってアップルのどっかに書いてあるそうな。

(eth0jpの日記)今回のソース

追記:こんなミスをしないためのメモリ管理参考URLはこちら↓
(こたつつきみかん)Objective-Cのメモリ管理
このエントリーをはてなブックマークに追加
Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。