xcode 4 垃圾收集已删除?
Posted
技术标签:
【中文标题】xcode 4 垃圾收集已删除?【英文标题】:xcode 4 garbage collection removed? 【发布时间】:2011-07-24 22:13:13 【问题描述】:我正在学习 Xcode 和 Objective c,但我正在阅读的书使用的是旧版本 (3.2) 的 Xcode。有一章完全专注于内存和泄漏,说我需要通过 Project Settings > Build 打开垃圾收集。但是,我找不到垃圾收集设置。它是被删除了还是我只是想念它?
【问题讨论】:
感谢您提出这个问题,我想知道垃圾收集自己去哪里了。 【参考方案1】:Xcode 4 仍然有垃圾收集,你所做的就是进入你的项目(导航栏中的顶部选项,带有大的 xcode 项目图标)。选择您的目标,它应该只是您的应用程序的名称,旁边有应用程序图标。当您选择它时,顶部会出现一个带有不同选项的栏,例如摘要、信息、构建设置等。点击“构建设置”并在搜索字段中输入“垃圾”。然后将垃圾收集设置为必需。
关于 GC 的一个非常重要的注意事项是,从 Mac OS 10.8 开始正式弃用它,这意味着您应该尽可能将代码转换为 ARC,因为 GC 可能不会存在太久。
更新:查看在当前版本的 Xcode 中启用 GC 的其他答案。如上所述,如果您还没有过渡到 ARC,那么您应该过渡到 ARC。
【讨论】:
在 Xcode 4.4 中搜索垃圾不会返回任何内容,因为构建设置现在是用户定义的。请参阅我的 Xcode 4.4 回复。 @Jonathan Mitchell,对。点击底部的“添加构建设置”,并添加:GCC_ENABLE_OBJC_GC 可能的值: required, supported, unsupported 现在,如果您在搜索字段中查找“垃圾”,ARC 会出现在搜索结果中。所以,我认为没有垃圾回收,ARC 取代了它。【参考方案2】:从 XCode 4.4 开始,垃圾收集构建标志是用户定义的(请参阅构建设置列表的最后)。
GCC_ENABLE_OBJC_GC supported
有效的构建设置是:
不支持:应用程序无法加载需要垃圾回收的代码。需要垃圾回收的应用程序无法加载可加载包。
支持:应用程序可以加载支持或需要垃圾回收的代码。可加载包可由具有任何级别的垃圾收集支持的应用程序加载。
必需:应用程序只能加载支持垃圾回收的代码。可加载包只能由支持垃圾回收的应用程序加载。
【讨论】:
【参考方案3】:Xcode 4 非常全面地支持垃圾收集。Xcode 4 本身就是一个 GC'd 应用程序。
GC 在 ios 中也非常不可用。如果您正在编写 iPhone/iPad 应用程序,则无法使用 GC。
【讨论】:
谢谢你!我正在阅读的书中实际上提到了你。 Cocoa 编程 - Daniel Steinberg 的开发人员快速入门指南(第 76 页)。我希望有一天我和你一样好。【参考方案4】:这是一个挑战,但您或许能够完成它 - 这是与 PDF 生成相关的思考起点:
iOS SDK - Programmatically generate a PDF file
如果你能大致了解那里发生的事情,你可能会没事。
【讨论】:
OP 标记为“mac”而不是“iOS”——你知道该链接是否仍然适用吗? 基本上,是的(尽管 Mac 上的 PDF 生成可能并没有像他提到的那样被破坏)。但是基本的 PDF 生成类是相同的。尽管您不能在 Mac 上使用 UIKit,但创建 xib 可能是一个不同的过程。很抱歉错过了 Mac 标签。【参考方案5】:Xcode 3.2 仍然可以下载 - 事实上,3.2.6 是在过去一两周内发布的,所以它并不完全是“老旧的”。 :-) Xcode 4 的界面非常 不同,所以考虑到您的时间紧迫并且需要从一开始,您现在最好使用 3.2。这肯定会让你使用这本书变得更容易。
【讨论】:
【参考方案6】:从 Xcode 4.3.3 开始,“Apple LLVM 编译器 3.1 - 语言”部分下参数“Objective-C 垃圾收集”的唯一设置可用,目标应用的构建设置 =“不支持”
【讨论】:
以上是关于xcode 4 垃圾收集已删除?的主要内容,如果未能解决你的问题,请参考以下文章