【发布时间】:2011-11-20 13:25:37
【问题描述】:
我有一个想要使用 ARC 转换的 iOS 应用。我只会使用迁移工具,但在预览阶段它总是会出错。
我知道我可以逐个文件地使用 -fobjc-arc 编译器指令,但我想在整个项目上启用 ARC,然后使用 -fno-objc-arc 关闭各个类.
4.2的新项目默认可以使用ARC,所以一定有什么地方可以切换的。
谁能帮我把项目转换成ARC
【问题讨论】:
我有一个想要使用 ARC 转换的 iOS 应用。我只会使用迁移工具,但在预览阶段它总是会出错。
我知道我可以逐个文件地使用 -fobjc-arc 编译器指令,但我想在整个项目上启用 ARC,然后使用 -fno-objc-arc 关闭各个类.
4.2的新项目默认可以使用ARC,所以一定有什么地方可以切换的。
谁能帮我把项目转换成ARC
【问题讨论】:
"ARC 在 Xcode 4.2 中可用,目前处于测试阶段,并且仅在 使用 Clang(又名“Apple LLVM 编译器”)进行编译。设置是 显然,它被称为“Objective-C 自动引用计数”。 打开它,然后关闭。
如果您正在处理现有代码,则更改此设置将产生 大量的错误。 ARC 不仅为您管理内存, 但它禁止你尝试自己做。这是违法的 使用 ARC 时手动发送保留/释放/自动释放。由于正常 非 ARC 可可代码中到处都是这些东西,你会得到很多 错误。
幸运的是,Xcode 提供了一个转换现有代码的工具。 选择编辑 -> 重构... -> 转换为 Objective-C ARC... Xcode 将指导您完成代码转换。虽然可能有一些 在需要帮助的情况下弄清楚该做什么,该过程 应该在很大程度上是自动的。”
我从这个链接中得到它,对我帮助很大: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html
【讨论】:
Convert to Objective-C ARC 有什么意义?它有什么作用?
选择您的项目或目标,然后转到 Build Settings,在 Apple LLVM compiler 3.0 - Language 部分下,您将看到选项 Objective-C Automatic引用计数。
【讨论】:
Garbage Collection ARC 下方的设置是否与 ARC 相关?
对于 towpse,在 Xcode 4.6 中,您需要查找“CLANG_ENABLE_OBJC_ARC”,然后将其更改为“是”以启用。
【讨论】: