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


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

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


1290
2017-07-11 05:21


起源


stackoverflow.com/questions/30274209/... - Vizllx


答案:


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

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

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

xcode

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


2131
2017-07-12 01:22



因此,添加此标志的位置不是太直观。但是,在Xcode 4中,在构建阶段和编译源中,实际上有两列。一个用于文件名,另一个用于该文件的编译标志。您可以在此处输入此特定编译器标志。 - casademora
你能指定一个目录,即目录中的所有文件吗?对于一个集团呢? - ma11hew28
没有目录。在构建设置中一次只有一个文件:( - casademora
@casademora你无法得到足够的信息来获取这条信息。谢谢。 - theTRON
@casademora你可以一次选择多个文件 - 但是不要双击但是点击RETURN。然后只需添加 -fno-objc-arc 它将被添加到所有选定的文件中。 编辑 刚刚看到这个答案下面的答案:( - pkyeck


禁用ARC 上 多个文件:

  1. 在Xcode中的Target / Build Phases / Compile Sources中选择所需的文件
  2. 按ENTER键
  3. 类型 -fno-objc弧
  4. 输入 要么 完成

;)

enter image description here


454
2018-04-01 00:30



谢谢!一直在寻找这个功能。选择多行时双击不起作用,但按Enter键不起作用。太奇怪了。 - bobmoff
哇哇我会花掉所有的业力来再次投票。感谢分享! - jemmons
这似乎不再适用于Xcode 4.3.3。双击或按下所选文件上的输入没有显示放入-fno-ojbc-arc标志的对话框,任何人都有解决方法吗? - tom
我有4.3.3和现在4.4 DP7,它仍然可以正常工作。尝试重新启动Xcode,重新启动计算机和修复权限。 - Tibidabo


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


42
2017-07-18 22:28





使单个文件非弧的非常简单的方法。

按照以下步骤:

在单个文件上禁用ARC:

  1. 在Xcode中的Target / Build Phases / Compile Sources中选择所需的文件

  2. 选择你想要的.m文件使它成为NON-ARC 按ENTER键 类型 -fno-objc弧

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

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


34
2017-07-05 05:55





注意:如果你愿意的话 禁用许多文件的ARC, 你必须:

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

33
2018-03-07 12:53





只需使用 -fno-objc-arc 国旗 Build Phases>Compile Sources


20
2017-11-28 09:56





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

Disable ARC for a particular file


11
2018-01-20 09:03





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

选择Target - > Build Phases - > Compile Sources - > Select File(双击) - >将“-fno-objc-arc”添加到弹出窗口。

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

如下图所示:

enter image description here


10
2018-03-20 14:24





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


9
2017-09-25 10:24





四个必须步骤,如下所述 视频

    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done

9
2017-10-21 19:16





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

enter image description here


5
2017-09-02 15:08