ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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


C
Community

可以通过为这些文件添加 -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


所以,添加这个标志的地方不是很直观。但是,在 Xcode 4 中,在构建阶段和编译源代码中,实际上有两列。一个用于文件名,另一个用于该文件的编译标志。这是您输入此特定编译器标志的地方。
你能指定一个目录,即一个目录中的所有文件吗?组呢?
没有目录。在构建设置中一次只有一个文件:(
@casademora 您无法为这条信息获得足够的支持。谢谢你。
@casademora 您可以一次选择多个文件 - 但不要双击而是按 RETURN。然后只需添加 -fno-objc-arc,它将被添加到所有选定的文件中。 edit 刚刚看到下面这个答案:(
T
Tibidabo

在多个文件上禁用 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.3。在选定的文件上双击或按 Enter 不会弹出用于放入 -fno-ojbc-arc 标志的对话框,有人有解决方法吗?
我有 4.3.3,现在有 4.4 DP7,它仍然可以正常工作。尝试重新启动 Xcode,重新启动机器并修复权限。
J
Jingjie Zhan

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


s
swiftBoy

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

请按照以下步骤操作:

在单个文件上禁用 ARC:

在 Xcode 中的 Target/Build Phases/Compile Sources 中选择所需的文件 选择要使其成为 NON-ARC PRESS ENTER 的 .m 文件类型 -fno-objc-arc

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

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


d
digipeople

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

打开“构建阶段”->“编译源”选择带有“left_mouse”+“cmd”(用于分隔文件)或+“shift”(用于分组文件-选择第一个和最后一个)的文件按“输入”粘贴-fno-objc -arc 按“回车”再次获利!


S
Serghei Pogor

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


u
user2538944

选择 Xcode 项目 Go to targets 选择 Build Phases 部分 在 build Phases 部分中选择编译源。选择您不想禁用 ARC 的文件并添加 -fno-objc-arc

https://i.stack.imgur.com/HCp0N.png


J
Jayprakash Dubey

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

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

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

如下图所示:

https://i.stack.imgur.com/bGKPq.png


M
Manish Jain

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


u
user2554822

video 中解释的四个强制性步骤

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

T
Tunvir Rahman Tusher

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

https://i.stack.imgur.com/oG8w9.png


g
greenland

https://i.stack.imgur.com/0KAd4.png


V
Vin

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

在 Xcode 的 Target/Build Phases/Compile Sources 中选择所需的文件 PRESS ENTER Type -fobjc-arc Press Enter or Done


M
Manoj Chandel

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

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


C
C_compnay

只需在不希望应用 ARC 的文件前面的 Build Phases>Compile Sources 中使用 -fno-objc-arc 标志。


a
adijazz91

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

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

粘贴此片段“-fno-objc-arc” 粘贴后按 ENTER

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


您的回答对这个老问题没有任何补充。
M
Mnsd

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


a
annu

按照步骤启用禁用 ARC

选择 Xcode 项目 Go to targets 选择 Build Phases 部分 在 build Phases 部分中选择编译源。选择您不想禁用 ARC 的文件并添加 -fno-objc-arc


您的回答对这个老问题没有任何补充。
需要什么补充。如果你知道比提供我们更好。
我没有对你投反对票。正是这个问题是在 2011 年 7 月 11 日 5:21 提出的。有太多答案相同的答案没有添加任何有用的信息...我怀疑有人因此而对您投了反对票...
你能给我简单介绍一下吗?