【发布时间】:2011-12-30 08:32:57
【问题描述】:
这两个代码sn-ps有什么区别:
object = nil;
[object release]
对比
[object release];
object = nil;
最佳做法是什么?
【问题讨论】:
标签: objective-c ios release
这两个代码sn-ps有什么区别:
object = nil;
[object release]
对比
[object release];
object = nil;
最佳做法是什么?
【问题讨论】:
标签: objective-c ios release
object = nil;
[object release]
不要那样做。你正在向一个 nil 对象发送 release 消息,它什么都不做。但是您的对象引用的对象仍在内存中,因为它从未收到过release 消息。
[object release];
object = nil;
在这里您释放对象,为了方便和安全,您将nil 设置为它的引用。所以你可以调用(当然是错误的:-))该对象上的任何方法,应用程序不会崩溃。
但是如果你使用保留属性@property(nonatomic, retain),调用:
self.object = nil;
等于调用:
[object release];
object = nil;
【讨论】:
[object release]; 和[object release];object = nil; 是否相等?