【发布时间】:2011-12-15 22:45:08
【问题描述】:
我正在尝试学习 iOS 5 中的自动引用计数。现在这个问题的第一部分应该很简单:
-
我确实不需要写明确的,这对吗? 使用 ARC 时我的 dealloc 中的 release-property 语句?其他 话,以下是真的 NOT 需要明确 解除分配?
@interface MyClass : NSObject @property (strong, nonatomic) NSObject* myProperty; @end @implementation MyClass @synthesize myProperty; @end -
我的下一个更重要的问题来自Transitioning to ARC Release Notes 文档中的一行:
您不必(实际上不能)释放实例变量,但您可能需要在系统类和其他未使用 ARC 编译的代码上调用 [self setDelegate:nil]。
这就引出了一个问题:我怎么知道哪些系统类不是用 ARC 编译的?我应该什么时候创建自己的 dealloc 并将强保留属性显式设置为 nil?我是否应该假设属性中使用的所有 NS 和 UI 框架类都需要显式释放?
在 SO 和其他地方有大量关于在使用手动引用跟踪时释放属性的支持 ivar 的做法的信息,但在使用 ARC 时这方面的信息相对较少。
【问题讨论】:
标签: objective-c ios automatic-ref-counting