协慌网

登录 贡献 社区

如何为项目中的单个文件禁用 ARC?

我在我的项目中成功使用 ARC。但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中 ARC 的规则现在更加脆弱。我记得听说有一种方法可以在每个文件的基础上禁用 ARC,但我无法找到这个选项。

这可能吗?如何基于每个文件禁用 ARC?

答案

通过为这些文件添加-fno-objc-arc编译器标志,可以为单个文件禁用 ARC。

您可以在 Targets - > Build Phases - > Compile Sources 中添加编译器标志。您必须双击Compiler Flags下行的右列。您还可以通过按住 cmd 按钮选择文件然后按 Enter 键以显示标志编辑框,将其添加到多个文件中。 (请注意,编辑多个文件将覆盖它可能已有的任何标志。)

我创建了一个示例项目,其中包含一个示例: https//github.com/jaminguy/NoArc

Xcode中

有关详细信息,请参阅此答案: 禁用某些文件的自动引用计数

MULTIPLE 文件禁用 ARC

  1. 在 Xcode 中的 Target / Build Phases / Compile Sources 中选择所需的文件
  2. 按 ENTER 键
  3. 键入-fno-objc-arc
  4. Enter完成

;)

在此输入图像描述

对于 Xcode 4.3,更简单的方法可能是:编辑 / 重构 / 转换为 objective-C ARC,然后检查您不想转换的文件。我发现这种方式与使用上面的编译器标志相同。