我对objective-c 中的对象释放有疑问。我在“开始 iphone 4 开发”(第 287 页)的第 9 章中看到了一些示例代码。示例代码两次释放对象:在 viewDidUnload 和 dealloc 方法中。以下是示例代码:
- (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];}
谢谢,
山姆