我在我的项目中成功使用了 ARC。但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中 ARC 的规则现在有点脆弱。我记得听说有一种方法可以在每个文件的基础上禁用 ARC,尽管我一直找不到这个选项。
这可能吗?如何在每个文件的基础上禁用 ARC?
可以通过为这些文件添加 -fno-objc-arc
编译器标志来禁用单个文件的 ARC。
您在 Targets -> Build Phases -> Compile Sources 中添加编译器标志。您必须双击编译器标志下行的右列。您也可以通过按住 cmd 按钮选择文件,然后按 Enter 调出标志编辑框,将其添加到多个文件中。 (请注意,编辑多个文件将覆盖它可能已经拥有的任何标志。)
我创建了一个示例项目,其中包含一个示例:https://github.com/jaminguy/NoArc
https://i.imgur.com/BgteG.png
有关详细信息,请参阅此答案:Disable Automatic Reference Counting for Some Files
在多个文件上禁用 ARC:
在 Xcode 的 Target/Build Phases/Compile Sources 中选择所需的文件 PRESS ENTER Type -fno-objc-arc Press Enter or Done
;)
https://i.stack.imgur.com/JVrWg.png
对于 Xcode 4.3,更简单的方法可能是:编辑/重构/转换为 Objective-C ARC,然后检查您不想转换的文件。我发现这种方式与使用上面的编译器标志相同。
这是使单个文件非弧的非常简单的方法。
请按照以下步骤操作:
在单个文件上禁用 ARC:
在 Xcode 中的 Target/Build Phases/Compile Sources 中选择所需的文件 选择要使其成为 NON-ARC PRESS ENTER 的 .m 文件类型 -fno-objc-arc
非 ARC 文件到 ARC 项目标志:-fno-objc-arc
ARC 文件到非 ARC 项目标志:-fobjc-arc
注意:如果你想为许多文件禁用 ARC,你必须:
打开“构建阶段”->“编译源”选择带有“left_mouse”+“cmd”(用于分隔文件)或+“shift”(用于分组文件-选择第一个和最后一个)的文件按“输入”粘贴-fno-objc -arc 按“回车”再次获利!
只需在 Build Phases
>Compile Sources
中使用 -fno-objc-arc
标志
选择 Xcode 项目 Go to targets 选择 Build Phases 部分 在 build Phases 部分中选择编译源。选择您不想禁用 ARC 的文件并添加 -fno-objc-arc
https://i.stack.imgur.com/HCp0N.png
可以为 Xcode 中的特定文件禁用 ARC(自动引用计数)。
选择目标 -> 构建阶段 -> 编译源 -> 选择文件(双击) -> 将“-fno-objc-arc”添加到弹出窗口。
我在使用“可达性”文件时遇到过这种情况。
如下图所示:
https://i.stack.imgur.com/bGKPq.png
在构建阶段对每个文件使用 -fno-objc-arc
此 video 中解释的四个强制性步骤
//1. Select desired files
//2. Target/Build Phases/Compile Sources
//3. Type -fno-objc-arc
//4. Done
请按照屏幕截图输入 -fno-objc-arc 。
https://i.stack.imgur.com/oG8w9.png
https://i.stack.imgur.com/0KAd4.png
我认为所有其他答案都在解释如何禁用 MRC(手动参考计数)和启用 ARC(自动参考计数)。要使用 MRC(手动引用计数),即在 MULTIPLE 文件上禁用 ARC(自动引用计数):
在 Xcode 的 Target/Build Phases/Compile Sources 中选择所需的文件 PRESS ENTER Type -fobjc-arc Press Enter or Done
添加标志“-fno-objc-arc”。
简单的步骤:应用程序>目标>构建阶段>编译源>在类“-fno-objc-arc”之后添加标志
只需在不希望应用 ARC 的文件前面的 Build Phases>Compile Sources 中使用 -fno-objc-arc 标志。
转到应用程序 -> 然后目标 -> 构建阶段 -> 编译源
现在,选择要禁用 ARC 的文件
粘贴此片段“-fno-objc-arc” 粘贴后按 ENTER
在要禁用 ARC 的每个文件中。
选择项目->目标->构建阶段->编译器源选择文件->编译器标志添加-fno-objc-arc
按照步骤启用禁用 ARC
选择 Xcode 项目 Go to targets 选择 Build Phases 部分 在 build Phases 部分中选择编译源。选择您不想禁用 ARC 的文件并添加 -fno-objc-arc
-fno-objc-arc
,它将被添加到所有选定的文件中。 edit 刚刚看到下面这个答案:(