我想要使用 ARC 转换为iOS应用。我只会使用迁移工具,但在预览阶段它会一直出错。
我知道我可以在逐个文件的基础上使用-fobjc-arc
编译器指令,但我想在整个项目中启用 ARC ,然后使用{关闭单个类{1}}。
4.2中的新项目默认情况下可以使用ARC,因此某处必须有一个开关。
任何人都可以帮我将项目转换为-fno-objc-arc
答案 0 :(得分:65)
“ARC可在Xcode 4.2中使用,目前处于测试阶段,且仅限于 使用Clang编译(a.k.a。“Apple LLVM编译器”)。设置是 很明显,“Objective-C自动引用计数”。 打开它,然后离开。
如果您正在处理现有代码,则会生成更改此设置 大量的错误。 ARC不仅为您管理记忆, 但它禁止你自己尝试。这是非法的 使用ARC时手动发送保留/释放/自动释放。正常 非ARC Cocoa代码充斥着这些东西,你会得到很多 错误。
幸运的是,Xcode提供了一种转换现有代码的工具。 选择编辑 - >重构...... - >转换为Objective-C ARC ... Xcode将指导您转换代码。虽然可能有一些 在需要帮助的情况下,弄清楚要做什么,这个过程 应该基本上是自动的。“
我从这个链接中获取了这些,帮了我很多: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html
答案 1 :(得分:48)
选择您的项目或目标,然后转到构建设置,在 Apple LLVM编译器3.0 - 语言部分下,您将看到 Objective-C Automatic选项参考计数。
答案 2 :(得分:5)
为了避免这种情况,在Xcode 4.6中,您将需要查找“CLANG_ENABLE_OBJC_ARC”,然后将其更改为“是”以启用。