Objective c 是否删除了xcode 4垃圾收集?

Objective c 是否删除了xcode 4垃圾收集?,objective-c,xcode,macos,Objective C,Xcode,Macos,我正在学习Xcode和objective c,但我正在读的书使用的是旧版本(3.2)的Xcode。有一章专门讨论内存和泄漏,说我需要通过“项目设置”>“构建”打开垃圾收集。但是,我找不到垃圾收集设置。它是否已被删除或我只是错过了它?这是一个挑战,但您可能能够完成它-以下是与PDF生成相关的一个起点: 如果你能大致了解那里的情况,你可能会没事。Xcode 3.2仍然可以下载-事实上,3.2.6是在过去一两周内发布的,所以它并不完全是“过时的”。:-)Xcode 4的界面非常不同,所以考虑到你的日

我正在学习Xcode和objective c,但我正在读的书使用的是旧版本(3.2)的Xcode。有一章专门讨论内存和泄漏,说我需要通过“项目设置”>“构建”打开垃圾收集。但是,我找不到垃圾收集设置。它是否已被删除或我只是错过了它?

这是一个挑战,但您可能能够完成它-以下是与PDF生成相关的一个起点:


如果你能大致了解那里的情况,你可能会没事。

Xcode 3.2仍然可以下载-事实上,3.2.6是在过去一两周内发布的,所以它并不完全是“过时的”。:-)Xcode 4的界面非常不同,所以考虑到你的日程安排很紧,需要从头开始,现在使用3.2可能会更好。这肯定会让你的书更容易使用。

Xcode 4仍然有垃圾收集功能,你所做的就是进入你的项目(导航栏顶部带有大的Xcode项目图标的选项)。选择您的目标,该目标应该是应用程序的名称,旁边有应用程序图标。选择该选项后,顶部会有一个带有不同选项的栏,如摘要、信息、生成设置等。点击“生成设置”并在搜索字段中键入“垃圾”。然后将垃圾收集设置为required

关于GC的一个非常重要的注意事项是,从MacOS10.8开始,它就被正式弃用,这意味着如果可能的话,您应该将代码转换为ARC,因为GC可能不会存在太久


更新:关于在当前版本的Xcode中启用GC,请参阅其他答案。如上所述,如果您还没有转换到ARC,那么您应该转换到ARC。

垃圾收集在Xcode 4中得到了充分的支持。Xcode 4本身就是一个GC的应用程序


GC在iOS中也非常不可用。如果您正在编写iPhone/iPad应用程序,则无法使用GC。

从Xcode 4.3开始,对于“Apple LLVM编译器3.1-语言”部分下的参数“Objective-C垃圾收集”,唯一可用的设置是目标应用程序的生成设置=“Unsupported”

从Xcode 4.4开始,垃圾收集生成标志由用户定义(请参见“生成设置”列表的末尾)

有效的生成设置包括:

  • 不受支持的:应用程序无法加载需要垃圾收集的代码。需要垃圾收集的应用程序无法加载可加载的捆绑包

  • 受支持的:应用程序可以加载支持或需要垃圾收集的代码。具有任何垃圾收集支持级别的应用程序都可以加载可加载的捆绑包

  • 必需:应用程序只能加载支持垃圾收集的代码。可加载的捆绑包只能由支持垃圾收集的应用程序加载


OP标记为“mac”而不是“iOS”——你知道这个链接是否仍然适用吗?基本上是的(尽管mac上的PDF生成可能没有像他提到的那样中断)。但是基本的PDF生成类是相同的。创建xib可能是一个不同的过程,因为你不能在Mac上使用UIKit。很抱歉丢失了Mac标记。谢谢你问这个问题,我想知道垃圾收集到哪里去了。谢谢bbum!我正在读的书中确实提到了你。Cocoa编程-一个快速明星Daniel Steinberg的《开发人员指南》(第76页)。我希望有一天我能和你一样好。在Xcode 4.4中,搜索垃圾不会返回任何结果,因为构建设置现在是用户定义的。请参阅我的Xcode 4.4回复。@Jonathan Mitchell,右。单击底部的“添加构建设置”,然后添加:GCC_ENABLE_OBJC_GC以及可能的值:{required,supported,unsupported}现在,如果您在搜索字段中查找“垃圾”,ARC将出现在搜索结果中。因此,我认为没有垃圾收集,ARC将其替换。
GCC_ENABLE_OBJC_GC supported