【发布时间】:2010-10-03 22:07:20
【问题描述】:
我一直遵循的基本规则是“如果我分配,我就解除分配”,但这是一个过于简单的观点吗?
【问题讨论】:
-
注意这也是answered here。
标签: objective-c cocoa
我一直遵循的基本规则是“如果我分配,我就解除分配”,但这是一个过于简单的观点吗?
【问题讨论】:
标签: objective-c cocoa
规则是“如果您调用以new 或alloc 开头、称为retain 或包含copy 的方法,则必须(自动)release”。 (容易记住这是首字母缩略词:“NARC”)
如果您将@property 声明为(retain) 或(copy),那么您应对支持的对象负责,并且您必须这样做:
[myProperty release];
在您的 dealloc 方法中。
【讨论】:
经验法则:(几乎)永远不要直接调用dealloc,而是使用release。有一些例外。例如,在您对象的 dealloc 方法中,您应该调用 [super dealloc]。
【讨论】: