这两个代码段之间的区别是什么:
object = nil;
[object release]
Vs的
[object release];
object = nil;
这是最佳做法?
答案 0 :(得分:9)
object = nil;
[object release]
不要这样做。您正在nil对象上发送release
消息,该消息将不执行任何操作。但是,对象引用的对象仍然在内存中,因为它从未收到release
消息。
[object release];
object = nil;
在此处释放对象,为方便起见,您可以将nil
设置为其引用。所以你可以调用(当然是错误的:-))该对象的任何方法,应用程序不会崩溃。
但是如果您使用保留的属性@property(nonatomic, retain)
,请调用:
self.object = nil;
等于致电:
[object release];
object = nil;