如果我使用的是合成属性,为什么我不能简单地说:
self.property = nil;
Run Code Online (Sandbox Code Playgroud)
这将释放引用计数,并确保我没有悬空指针.
看起来很简单,但我看到99%的代码似乎都是这样做的:
[property release];
property = nil;
Run Code Online (Sandbox Code Playgroud)
是的,在大多数情况下,它们是属性.我得到了可怕的感觉我错过了什么?当我忘记放"自我"时就像是一样.在一些属性面前,并想知道为什么它崩溃:-)
如果你试图在dealloc方法中的任何地方清除属性的值,那么这self.property = nil;是最好的方法.它将为您处理所有内存管理任务,有助于防止任何问题.
如果你使用的是dealloc方法,那么释放ivar的最佳方式是争论,但[property release];往往被推荐,因为调用self.property可能会产生次要影响.在该dealloc方法中,property = nil;不需要调用.
| 归档时间: |
|
| 查看次数: |
503 次 |
| 最近记录: |