self.prop =无;与[prop release]; prop = nil;

时间:2010-09-13 16:53:54

标签: objective-c

如果我使用的是合成属性,那我为什么不简单地说:

self.property = nil;

这将释放引用计数,并确保我没有悬空指针。

看起来很简单,但我看到99%的代码似乎都是这样做的:

[property release];
property = nil;

是的,在大多数情况下,它们都是属性。 我得到了可怕的感觉我错过了什么? 当我忘记放“自我”时就像是一样。在一些属性面前,并想知道为什么它崩溃: - )

1 个答案:

答案 0 :(得分:9)

如果你试图在dealloc方法中的任何地方清除属性的值,那么self.property = nil;是最好的方法。它将为您处理所有内存管理任务,有助于防止任何问题。

如果你使用的是dealloc方法,那么发布ivar的最佳方式就是辩论,但推荐使用[property release];,因为调用self.property可能会产生次要影响。在dealloc方法中,无需调用property = nil;