有时我在objective-c中看到了这种类型的编码。为什么在释放后将imageView设置为nil。
- (void)dealloc {
[_imageView release];
_imageView = nil;
[super dealloc];
}
答案 0 :(得分:5)
确保您不会尝试重复使用刚刚发布的对象。
通过将其设置为nil
,您可以确保将来发送给它的任何消息(标准nil
对象的行为)而不是导致问题。
答案 1 :(得分:2)
只是因为这是安全的做法。
在dealloc中,除非你使用线程,否则它没有多大意义,但是每次你将nil分配给一个对象时(除非它是一个属性),这样做总是好的。
答案 2 :(得分:1)
据我了解,在dealloc中没有必要。但是,当在任何其他方法中释放对象时,指针仍将保留,但它指向的对象将不再存在,从而在向其发送消息时导致崩溃。
通过将指针设置为nil,您可以确保发送给它的任何消息都将被忽略,而不是使应用程序崩溃(或导致奇怪的行为)。