设置object = nil和 vs 和object = nil有什么区别?

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

object = nil; [object release] 

VS

 [object release]; object = nil; 

这是最好的做法?

 object = nil; [object release] 

不要这样做。 你正在发送一个无效的对象release消息,什么都不做。 但是由对象引用的对象仍然在内存中,因为它从来没有收到release信息。

 [object release]; object = nil; 

在这里你释放这个对象,为了方便和安全,你把它设置为它的引用。 所以你可以调用(当然错误:-))该对象的任何方法,应用程序不会崩溃。

但是,如果您使用保留属性@property(nonatomic, retain) ,请调用:

 self.object = nil; 

等于打电话:

 [object release]; object = nil;