我应该在 dealloc 中释放实例变量和属性吗?
Posted
技术标签:
【中文标题】我应该在 dealloc 中释放实例变量和属性吗?【英文标题】:Should I release instance variables and properties in dealloc? 【发布时间】:2012-03-02 13:29:33 【问题描述】:根据 Apple 在 View Controller Lifecycle 上的文档,我注意到有关 dealloc 方法的以下内容:
仅覆盖此方法以执行任何最后一分钟清理您的 视图控制器类。存储在实例变量中的对象和 属性自动释放;你不需要释放它们 明确的。
我一直被教导要对我在视图控制器的 dealloc 方法中拥有的实例变量和属性调用 release。
我知道的唯一例外是在使用 ARC 时,但它没有在本文档中提及 ARC。
这对吗?
【问题讨论】:
【参考方案1】:由于您发布的指南最近已更新,我很确定它假定您正在使用 ARC(毕竟,如果可能的话,您应该这样做)。
您是对的,在 ARC 之前,您必须在 dealloc
方法中释放您的实例变量(您可以在 App-Delegate 的 dealloc
的旧 XCode 模板中看到这一点)。使用 ARC,这会自动处理(如本指南所述),因此除了特殊需要外,不再使用 dealloc
方法。
【讨论】:
想法很多,但文档不清楚。我正在使用在引入 ARC 之前构建的代码。【参考方案2】:正如 JiaYow 所提到的,该指南已更新为 ARC。在这里您可以找到视图控制器的旧版指南:https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerPGforiOSLegacy/BasicViewControllers/BasicViewControllers.html#//apple_ref/doc/uid/TP40011381-CH101-SW1
【讨论】:
以上是关于我应该在 dealloc 中释放实例变量和属性吗?的主要内容,如果未能解决你的问题,请参考以下文章