提问人:casademora 提问时间:7/11/2011 最后编辑:Nikolai Ruhecasademora 更新时间:5/7/2018 访问量:340614
如何为项目中的单个文件禁用 ARC?
How can I disable ARC for a single file in a project?
问:
我在我的项目中成功使用了ARC。但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中 ARC 的规则现在有点脆弱。我记得听说有一种方法可以按文件禁用 ARC,尽管我无法找到此选项。
这可能吗?如何基于每个文件禁用 ARC?
答:
可以通过为单个文件添加编译器标志来禁用这些文件的 ARC。-fno-objc-arc
您可以在“目标”-“生成阶段”>“编译源”>“生成阶段”中添加编译器标志。您必须双击“编译器标志”下行的右列。您还可以通过按住 cmd 按钮选择文件,然后按 Enter 键调出标志编辑框来将其添加到多个文件中。(请注意,编辑多个文件将覆盖它可能已经拥有的任何标志。
我创建了一个示例项目,其中包含一个示例:https://github.com/jaminguy/NoArc
有关详细信息,请参阅此答案:禁用某些文件的自动引用计数
评论
-fno-objc-arc
在多个文件上禁用 ARC:
- 在 Xcode 中的 Target/Build Phases/Compile Sources 中选择所需的文件
- 按 ENTER 键
- 键入 -fno-objc-arc
- 按 Enter 或 Done 键
;)
评论
对于 Xcode 4.3,更简单的方法可能是:编辑/重构/转换为 objective-C ARC,然后勾选您不想转换的文件。我发现这种方式与使用上面的编译器标志相同。
只需在-fno-objc-arc
Build Phases
>Compile Sources
注意:如果要对许多文件禁用ARC,则必须:
- 打开 “Build phases” -> “Compile sources”
- 选择带有“left_mouse”+“cmd”(对于单独的文件)或+“shift”(对于分组文件-选择第一个和最后一个)的文件
- 按“Enter”
- 糊
-fno-objc-arc
- 再次按“Enter”
- 利润!
这是使单个文件无弧形的非常简单的方法。
请按照以下步骤操作:
在单个文件上禁用 ARC:
在 Xcode 中的 Target/Build Phases/Compile Sources 中选择所需的文件
选择您想要的 .m 文件,使其成为非 ARC 按 ENTER 键 键入 -fno-objc-arc
非 ARC 文件到 ARC 项目标志:-fno-objc-arc
ARC 文件到非 ARC 项目标志:-fobjc-arc
在构建阶段对每个文件使用 -fno-objc-arc
添加标志“-fno-objc-arc”。
简单的步骤如下: App>Targets>Build Phases>编译源代码>在类“-fno-objc-arc”后添加标志
本视频中解释的四个强制性步骤
//1. Select desired files
//2. Target/Build Phases/Compile Sources
//3. Type -fno-objc-arc
//4. Done
- 选择 Xcode 项目
- 转到目标
- 选择“生成阶段”部分
- 在“生成阶段”部分中,选择编译源。
- 选择您不想禁用 ARC 的文件并添加 -fno-objc-arc
可以在 Xcode 中禁用特定文件的 ARC(自动引用计数)。
选择目标 -> 构建阶段 -> 编译源代码 -> 选择文件(双击) -> 在弹出窗口中添加“-fno-objc-arc”。
我在使用“可访问性”文件时遇到了这种情况。
如下图所示:
只需在不希望应用 ARC 的文件前面的 Build Phases>Compile Sources 中使用 -fno-objc-arc 标志即可。
转到应用程序 -> 然后转到目标 -> 构建阶段 -> 编译源代码
现在,选择要禁用ARC的文件
粘贴此代码段“-fno-objc-arc” 粘贴后按 ENTER
在要禁用 ARC 的每个文件中。
评论
以下步骤启用禁用 ARC
选择 Xcode 项目 转到目标 选择“生成阶段”部分 在“生成阶段”部分中,选择编译源。 选择您不想禁用 ARC 的文件并添加 -fno-objc-arc
评论
如果您使用的是 Unity,则无需在 Xcode 中更改此设置,您可以在 Unity 中为特定文件的元数据应用编译标志。只需在“项目”面板中选择它们,然后从“检查器”面板中应用即可。如果您计划使用 Cloud Build,这是必不可少的。
我认为所有其他答案都在解释如何禁用 MRC(手动引用计数)和启用 ARC(自动引用计数)。 要使用 MRC(手动引用计数),即在多个文件上禁用 ARC(自动引用计数):
- 在 Xcode 中的 Target/Build Phases/Compile Sources 中选择所需的文件
- 按 ENTER 键
- 键入 -fobjc-arc
- 按 Enter 或 Done 键
请按照屏幕截图并输入 -fno-objc-arc 。
- 选择项目 -> 目标 -> 生成阶段 -> 编译器源代码
- 选择文件 -> 编译器标志
- 添加 -fno-objc-arc
评论