批量添加“-fno-objc-arc”标志到(多个)源文件

时间:2012-04-17 02:30:26

标签: iphone objective-c ios xcode4 automatic-ref-counting

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

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

有没有人对此采取明智的方法?

3 个答案:

答案 0 :(得分:23)

选择要添加标记的那些(使用 Shift 和/或 Command )并按 Enter 以显示标记编辑器。按完成将输入的标志应用于所选文件。

<强>教程

我已经编写了blog post作为此过程的教程。

答案 1 :(得分:2)

到目前为止,最简单的选择就是使用Edit&gt;下的ARC转换工具。重构。

目前还不是很清楚,但基本上你只是检查你想要使用ARC的文件,并取消选中你不使用的文件。这将执行以下操作:

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

2)检查的文件将转换为ARC

3)已经转换为ARC的已检查文件将不受影响

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

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

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

答案 2 :(得分:1)

  

我需要设置不应支持ARC的文件(主要是第三方代码)。

除了管理标志之外,您只需为这些源创建一个静态库,然后链接。