Objective-C でのオブジェクトのリリースについて質問があります。「iPhone 4 開発入門」(287 ページ) の第 9 章にサンプルコードがいくつかありました。サンプル コードでは、viewDidUnload メソッドと dealloc メソッドの両方で、オブジェクトを 2 回解放します。サンプルコードは次のとおりです。
- (void)viewDidUnload {
self.list = nil;
[childController release], childController = nil;}
- (void)dealloc {
[list release];
[childController release];
[super dealloc];}
childControllerはUIViewControllerサブクラスのインスタンスとして宣言されています。viewDidUnloadとdeallocメソッドの両方でリリースされるのはなぜですか? childControllerはすでに viewDidUnload で解放されているので、deallocメソッドで再度解放する必要はありますか? 私の理解に基づいて、次のようなコードを記述します。
- (void)viewDidUnload {
self.list = nil;
childController = nil;}
- (void)dealloc {
[list release];
[childController release];
[super dealloc];}
ありがとう、
サム