将 Xcode 项目转换为 ARC(自动引用计数)后,我需要为我的一些源文件(主要是第三方代码)禁用 ARC。
我知道我需要为这些文件中的每一个设置“-fno-objc-arc”标志,但是 Xcode 没有给我批量编辑的选项 - 我需要手动将此标志添加到每个文件中,这可能很乏味如果您需要为多个文件设置它。
有没有人对此有聪明的方法?
将 Xcode 项目转换为 ARC(自动引用计数)后,我需要为我的一些源文件(主要是第三方代码)禁用 ARC。
我知道我需要为这些文件中的每一个设置“-fno-objc-arc”标志,但是 Xcode 没有给我批量编辑的选项 - 我需要手动将此标志添加到每个文件中,这可能很乏味如果您需要为多个文件设置它。
有没有人对此有聪明的方法?
到目前为止,最简单的选项就是使用 Edit > Refactor 下的 ARC 转换工具。
这不是很清楚,但基本上你只需检查任何你想使用 ARC 的文件,然后取消选中你不想使用的任何文件。这将执行以下操作:
1) 未选中的文件将应用 -fno-objc-arc 标志
2) 选中的文件将转换为 ARC
3) 已被检查的已转换为 ARC 的文件将保持不变
再仔细阅读一遍。有时让人们感到困惑的是,他们认为在再次运行该工具时应该不选中已经转换的文件,但这会错误地将 -fno-objc-arc 应用于这些文件(导致泄漏)。
您应该将 ARC 转换工具视为“批量选择 ARC 兼容文件并转换尚未 ARC 的文件”工具,而不是直接转换工具。
您可以根据需要多次运行转换工具 - 效果不是累积的(尽管将文件转换为 ARC 是不可逆的)。
我需要设置不应该支持 ARC 的文件(主要是 3rd-party 代码)。
除了管理标志之外,您可以简单地为这些源创建一个静态库,然后链接。