【发布时间】:2011-07-18 21:36:30
【问题描述】:
我有一个关于 Objective-C 中的垃圾回收的问题
如果我有一个对象,我们就称它为“A”。并且“A”包含指向其他多个对象的实例变量。如果我将指向 A 的指针设置为 nil,垃圾收集器是否会理解“A”中包含的所有内容现在也未使用并处理清理工作?或者我是否还需要明确地将所有实例变量设为“A”nil 才能进行内存清理?
【问题讨论】:
-
虽然有一些用于objective-C的垃圾收集器,但标准方法是使用手动引用计数 [保留/释放]作为一些更自动化的方法,如自动释放池。为了获得更好的答案,应该在问题中提及确切的 Objective-c 运行时(iOS、Leopard、GNU?)。
-
我知道手动内存管理,但对于我正在从事的这个特定项目,我更喜欢进行垃圾收集。目标平台是 Leopard+。
-
在 Mac OS X 上,Objective-C 支持全自动垃圾回收已经有一段时间了。
标签: objective-c cocoa memory garbage-collection