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

时间:2011-07-11 05:21:18

标签: objective-c xcode automatic-ref-counting manual-retain-release

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

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

18 个答案:

答案 0 :(得分:2149)

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

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

我创建了一个示例项目:https://github.com/jaminguy/NoArc

xcode

有关详细信息,请参阅此答案: Disable Automatic Reference Counting for Some Files

答案 1 :(得分:459)

MULTIPLE文件

停用ARC

  1. 在Xcode
  2. 中的目标/构建阶段/编译源中选择所需文件
  3. 按ENTER
  4. 输入 -fno-objc-arc
  5. Enter 完成
  6. enter image description here

答案 2 :(得分:45)

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

答案 3 :(得分:37)

将单个文件设为非弧是非常简单的方法。

按照以下步骤操作:

在单个文件上禁用ARC:

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

  2. 选择你想要的.m文件,使其成为NON-ARC 按ENTER键 输入 -fno-objc-arc

  3. 非ARC文件到ARC项目标记:-fno-objc-arc

    ARC文件到非ARC项目标记:-fobjc-arc

答案 4 :(得分:35)

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

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

答案 5 :(得分:22)

只需使用-fno-objc-arc> Build Phases

中的Compile Sources标记即可

答案 6 :(得分:13)

  1. 选择Xcode项目
  2. 转到目标
  3. 选择构建阶段部分
  4. 在构建阶段部分中选择编译源。
  5. 选择您不想禁用ARC的文件并添加-fno-objc-arc
  6. Disable ARC for a particular file

答案 7 :(得分:13)

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

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

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

如下图所示:

enter image description here

答案 8 :(得分:11)

video

中解释的四个必填步骤
    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done

答案 9 :(得分:11)

在构建阶段为每个文件使用-fno-objc-arc

答案 10 :(得分:8)

请按照屏幕截图进入 -fno-objc-arc

enter image description here

答案 11 :(得分:6)

如果你正在使用Unity,你不需要在Xcode中更改它,你可以在Unity内部的特定文件的元数据中应用编译标志。只需在“项目”面板中选择它们,然后从“检查器”面板中应用它们。如果您计划使用Cloud Build,这一点至关重要。enter image description here

答案 12 :(得分:5)

添加标志“-fno-objc-arc”。

简单的按照步骤: 应用>目标>构建阶段>编译源>在课程“-fno-objc-arc”之后添加标志

答案 13 :(得分:5)

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

  1. 在Xcode
  2. 中的目标/构建阶段/编译源中选择所需文件
  3. 按ENTER键
  4. 键入-fobjc-arc
  5. 按Enter或完成

答案 14 :(得分:2)

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

答案 15 :(得分:-1)

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

答案 16 :(得分:-2)

转到App - >然后目标 - >构建阶段 - >编译源

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

粘贴此代码段" -fno-objc-arc"粘贴后按ENTER键

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

答案 17 :(得分:-2)

按照步骤启用禁用ARC

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