iOS SDKのviewDidUnloadでoutletを解放するべきか否か
iPhoneアプリを開発していると、メモリ関係でうむむと悩むことが多い。
Objective-Cを使い始めたころは、EXEC_BAD_ACCESSに泣かされまくった。
で、今、僕の中でホットなのが、
iOS SDKのviewDidUnloadでoutletを解放するべきか否か
という問題。
Cocoaの日々: UIViewController でのメモリ管理見本
こちらのエントリ(非常に詳細で素晴らしい!!)をみると、viewDidUnloadでプロパティにnilを入れて解放処理を行っている。
実際、テンプレートから作成されるViewControllerのソースには、
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
とあるから、アウトレットを解放する必要があるような気もする。
しかし、
このチュートリアルでは、特に行っていない。
このガイドを見ても、viewDidUnloadでの解放については触れていない。
じゃあ、やっぱり解放する必要はないのかなーと思っていると、
Memory Management Programming Guide: Memory Management of Nib Objects
この英語版のガイドでは、「しろ!」って書いてある。
いったいどっちなんだ?!
してもしなくてもいいのか、それとも、しなくてはいけないのか。
謎は深まるばかりでございます......。
投稿者 CHEEBOW : 2010年10月25日 11:24
Tweet
[ iPhone ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG
