【问题标题】:How do you enable ARC project-wide in Xcode 4.2如何在 Xcode 4.2 中启用 ARC 项目范围
【发布时间】:2011-11-20 13:25:37
【问题描述】:

我有一个想要使用 ARC 转换的 iOS 应用。我只会使用迁移工具,但在预览阶段它总是会出错。

我知道我可以逐个文件地使用 -fobjc-arc 编译器指令,但我想在整个项目上启用 ARC,然后使用 -fno-objc-arc 关闭各个类.

4.2的新项目默认可以使用ARC,所以一定有什么地方可以切换的。

谁能帮我把项目转换成ARC

【问题讨论】:

    标签: ios xcode xcode4 ios4


    【解决方案1】:

    "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 有什么意义?它有什么作用?
    • 你说对了吗,你仍然需要手动删除保留和释放。我不确定是苹果的目标是强迫你看到你不再需要的东西还是太错误了Xcode 很容易自行删除它们。
    【解决方案2】:

    选择您的项目或目标,然后转到 Build Settings,在 Apple LLVM compiler 3.0 - Language 部分下,您将看到选项 Objective-C Automatic引用计数

    【讨论】:

    • Garbage Collection ARC 下方的设置是否与 ARC 相关?
    • @SAFX,不。 ARC 和 GC 是两个完全不同的东西。
    【解决方案3】:

    对于 towpse,在 Xcode 4.6 中,您需要查找“CLANG_ENABLE_OBJC_ARC”,然后将其更改为“是”以启用。

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多