设置object = nil和[object release] vs [object release]和object = nil有什么区别?
问题描述:
的是这两个代码段之间的区别:设置object = nil和[object release] vs [object release]和object = nil有什么区别?
object = nil;
[object release]
Vs的
[object release];
object = nil;
这是最好的做法是什么?
答
object = nil;
[object release]
不这样做。您正在发送一个release
消息在一个无所事事的零对象上。但是由对象引用的对象仍然在内存中,因为它从未收到过release
消息。
[object release];
object = nil;
在这里,您释放的对象,为了方便和安全,您设置nil
其参考。所以你可以调用(当然错误:-))该对象上的任何方法,并且该应用程序不会崩溃。
但是如果你使用一个保留的财产@property(nonatomic, retain)
,美其名曰:
self.object = nil;
等于致电:
[object release];
object = nil;
相关:http://stackoverflow.com/questions/6778793/ – Jano