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

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

这可能吗?如何在每个文件的基础上禁用ARC?

339148 次浏览

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

您可以在目标->构建阶段->编译源中添加编译器标志。您必须双击编译器标志下的行的右列。您还可以通过按住cmd按钮选择文件,然后按回车键调出标志编辑框将其添加到多个文件中。(请注意,编辑多个文件将覆盖它可能已经拥有的任何标志。)

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

xcode

查看更多信息:禁用某些文件的自动引用计数

禁用ARC多个文件:

  1. 在Xcode中的目标/构建阶段/编译源选择所需的文件
  2. 新闻输入
  3. 类型-fno对象弧
  4. 输入成交

;)

输入图片描述

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

只需在Build Phases>Compile Sources中使用-fno-objc-arc标志

注意:如果你想为许多文件禁用ARC,你必须:

  1. 打开构建阶段->编译源代码
  2. 选择"left_mouse"+"cmd"(对于分离的文件)或+“Shift”的文件(对于分组文件-选择第一个和最后一个)
  3. 按“输入”
  4. 粘贴-fno-objc-arc
  5. 再次按“回车键”
  6. 利润!

这是一个非常简单的方法,使个别文件非弧。

请按照以下步骤操作:

在单个文件上禁用ARC:

  1. 在Xcode中的目标/构建阶段/编译源选择所需的文件

  2. 选择您想要的. m文件,使其成为NON-ARC新闻输入类型-fno对象弧

非ARC文件到ARC项目标志:-fno-objc-arc

ARC文件为非ARC项目标志:-fobjc-arc

在构建阶段对每个文件使用-fno-obic-ARC

添加标志“-fno-obic-ARC”。

简单的步骤:App>目标>构建阶段>编译源代码>在类“-fno-obic-ARC”后添加标志

四个强制性步骤,如本视频所述

    //1. Select desired files//2. Target/Build Phases/Compile Sources//3. Type -fno-objc-arc//4. Done
  1. 选择Xcode项目
  2. 前往目标
  3. 选择构建阶段部分
  4. 在构建阶段部分中选择编译源。
  5. 选择您不想禁用ARC的文件并添加-fno-obic-ARC

禁用特定文件的ARC

可以为Xcode中的特定文件禁用ARC(自动引用计数)。

选择目标->构建阶段->编译源->选择文件(双击)->添加“-fno-obic-arc”到弹出窗口。

我在使用“可达性”文件时遇到过这种情况。

如下图所示:

输入图片描述

只需在构建阶段>编译源中使用-fno-obic-ARC标志,在您不希望应用ARC的文件前面。

转到应用程序->然后目标->构建阶段->编译源

现在,选择要禁用ARC的文件

粘贴此代码段"-fno-obic-ARC"粘贴后按ENTER

在您要禁用ARC的每个文件中。

按照步骤启用禁用ARC

选择Xcode项目前往目标选择构建阶段部分在构建阶段部分中选择编译源。选择您不想禁用ARC的文件并添加-fno-obic-ARC

如果您使用的是Unity,则不需要在Xcode中更改此项,您可以在Unity内部的特定文件的元数据中应用编译标志。只需在项目面板中选择它们,然后从检查器面板中应用。如果您计划使用Cloud Build,这是必不可少的。输入图片描述

我认为所有其他答案都在解释如何禁用MRC(手动引用计数)和启用ARC(自动引用计数)。要使用MRC(手动引用计数),即在多个文件上禁用ARC(自动引用计数):

  1. 在Xcode中的目标/构建阶段/编译源选择所需的文件
  2. 新闻输入
  3. 类型-fobic-弧
  4. 按回车或完成

请按照屏幕截图输入-fno对象弧

在此处输入图片描述

  1. 选择项目->目标->构建阶段->编译器源
  2. 选择文件->编译器标志
  3. 添加-fno-obic-ARG