设置object = nil和[object release]与[object release]和object = ni



这两个代码片段有什么区别:

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;

最新更新