我正在学习Xcode和目标c,但我正在阅读的书正在使用Xcode的旧版本(3.2)。一章完全致力于内存和泄漏,我说需要通过Project Settings>打开垃圾收集。建立。但是,我找不到垃圾收集设置。它被删除了还是我错过了它?
答案 0 :(得分:9)
Xcode 4仍然有垃圾收集,你所做的只是进入你的项目(导航栏中的顶部选项带有大的xcode项目图标)。选择您的目标,该目标应该只是您的应用程序的名称,旁边有应用程序图标。当您选择它时,顶部会有一个带有不同选项的栏,例如摘要,信息,构建设置等。点击“构建设置”并在搜索栏中输入“垃圾”。然后将垃圾收集设置为必需。
关于GC的一个非常重要的注意事项是它从Mac OS 10.8开始正式弃用,这意味着如果可能的话,您应该将代码转换为ARC,因为GC可能不会存在更长时间。
更新:请参阅在当前版本的Xcode中启用GC的其他答案。如上所述,如果您尚未转换为ARC,则应该转换为ARC。
答案 1 :(得分:4)
从XCode 4.4开始,垃圾收集构建标志是用户定义的(参见构建设置列表的最后部分)。
GCC_ENABLE_OBJC_GC supported
有效的构建设置是:
不支持:应用程序无法加载需要垃圾回收的代码。无法通过需要垃圾回收的应用程序加载可加载包。
支持:应用程序可以加载支持或需要垃圾回收的代码。可加载的包可以由具有任何级别的垃圾收集支持的应用程序加载。
必需:应用程序只能加载支持垃圾回收的代码。可加载包只能由支持垃圾收集的应用程序加载。
答案 2 :(得分:2)
Xcode 4中完全支持垃圾收集.Xcode 4本身就是GC的应用程序。
GC在iOS中也非常不可用。如果您正在编写iPhone / iPad应用程序,则无法使用GC。
答案 3 :(得分:1)
这是一个挑战,但你可能能够完成它 - 这是一个与PDF生成相关的起点:
iOS SDK - Programmatically generate a PDF file
如果你一般可以按照那里发生的事情,你可能会没事。
答案 4 :(得分:1)
Xcode 3.2仍然可供下载 - 事实上,3.2.6在过去一两周内发布,所以它并不完全“老而且被破坏”。 :-) Xcode 4的界面非常不同,所以考虑到你的时间紧迫以及你需要从正方形开始,你最好现在使用3.2。这肯定会让你更容易使用你的书。
答案 5 :(得分:1)
从Xcode 4.3.3开始,“Apple LLVM编译器3.1 - 语言”部分下的参数“Objective-C Garbage Collection”可用的唯一设置,目标应用程序的Build Settings =“Unsupported”