这两个代码片段有什么区别:
object = nil;
[object release]
和
[object release];
object = nil;
object = nil;
[object release]
不要那样做。你在一个nil对象上发送一个release
消息,它什么都不做。但是被你的对象引用的对象仍然在内存中,因为它从来没有收到release
消息。
[object release];
object = nil;
在这里释放对象,为了方便和安全,将nil
设置为它的引用。因此,你可以在该对象上调用(当然是错误的:-))任何方法,而应用程序不会崩溃。
但是如果使用保留属性@property(nonatomic, retain)
,调用:
self.object = nil;
等于调用:
[object release];
object = nil;