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

Aug*_*Aug 1 cocoa garbage-collection

据我所知,Cocoa中默认情况下不启用垃圾收集,应在Build设置中选择.但在构建设置中我只能看到自动引用计数.我错过了什么?在此输入图像描述

Bri*_*man 7

Apple已弃用垃圾收集.你应该使用ARC代替.您可以在此处找到ARC文档.有一个WWDC谈ARC 这里

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

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

上面提到的话题进一步详述.