objective-c – 为什么要释放已经设置为nil的属性?

以下是Apple教程中视图控制器中的两种方法:
- (void)viewDidUnload {
    self.eventsArray = nil;
    self.locationManager = nil;
    self.addButton = nil;
}

- (void)dealloc {
    [managedObjectContext release];
    [eventsArray release];
    [locationManager release];
    [addButton release];
    [super dealloc];
}

dealloc方法不能缩短到以下几点吗?如果没有,为什么不呢?

- (void)dealloc {
    [managedObjectContext release];
    [super dealloc];
}

解决方法

– (void)不能保证调用viewDidUnload,所以你应该总是在dealloc中释放东西.

请参阅this question以了解它何时被调用,以及当它被调用时应该做什么.

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...