Xcode Cocoa中的垃圾收集在哪里?

时间:2012-09-09 17:22:37

标签: cocoa garbage-collection

据我所知,Cocoa默认情况下不启用垃圾收集,应在Build设置中选择。但在构建设置中我只能看到自动引用计数。我错过了什么?enter image description here

1 个答案:

答案 0 :(得分:7)

Apple已弃用垃圾收集。你应该使用ARC代替。您可以找到ARC文档here。有关ARC here

的WWDC讨论

使用ARC时,对象是引用计数而不是垃圾回收。但是,我们不应该致电retainrelease / autorelease。编译器代表您插入对retainrelease / autorelease的调用。实际上,这与垃圾收集类似。您必须小心避免引用循环,这可能会阻止对象的引用计数变为零并阻止对象被释放。这主要是由父/子关系引入的,当一个孩子持有对它的父级的引用时,就像大多数涉及代理的实例一样。

通过将父/子关系中的一个引用标记为弱,可以避免引用周期。标记为弱的属性会创建对对象的弱引用。当对象的引用计数变为零时,对象的弱引用被设置为nil

我提到的话题above进一步详述。