11

将 Xcode 项目转换为 ARC(自动引用计数)后,我需要为我的一些源文件(主要是第三方代码)禁用 ARC。

我知道我需要为这些文件中的每一个设置“-fno-objc-arc”标志,但是 Xcode 没有给我批量编辑的选项 - 我需要手动将此标志添加到每个文件中,这可能很乏味如果您需要为多个文件设置它。

有没有人对此有聪明的方法?

4

3 回答 3

23

选择要添加标志的那些(使用Shift和/或Command),然后按Enter显示标志编辑器。按完成将输入的标志应用到选定的文件。

教程

我撰写了一篇博文作为此过程的教程。

于 2012-04-17T02:32:05.470 回答
2

到目前为止,最简单的选项就是使用 Edit > Refactor 下的 ARC 转换工具。

这不是很清楚,但基本上你只需检查任何你想使用 ARC 的文件,然后取消选中你不想使用的任何文件。这将执行以下操作:

1) 未选中的文件将应用 -fno-objc-arc 标志

2) 选中的文件将转换为 ARC

3) 已被检查的已转换为 ARC 的文件将保持不变

再仔细阅读一遍。有时让人们感到困惑的是,他们认为在再次运行该工具时应该不选中已经转换的文件,但这会错误地将 -fno-objc-arc 应用于这些文件(导致泄漏)。

您应该将 ARC 转换工具视为“批量选择 ARC 兼容文件并转换尚未 ARC 的文件”工具,而不是直接转换工具。

您可以根据需要多次运行转换工具 - 效果不是累积的(尽管将文件转换为 ARC 是不可逆的)。

于 2012-09-03T15:39:59.043 回答
1

我需要设置不应该支持 ARC 的文件(主要是 3rd-party 代码)。

除了管理标志之外,您可以简单地为这些源创建一个静态库,然后链接。

于 2012-04-17T02:36:36.917 回答