如何为特定文件关闭ARC

时间:2011-11-23 20:00:32

标签: ios iphone automatic-ref-counting

我知道我应该将编译器标志-fno-objc-arc添加到XCode 4中的编译源来完成此任务。但它没有用。即使添加了标记,我仍然会在KeychainItemWrapper.m文件中收到错误,声称我需要使用__bridge作为C指针。

I have added the required flag to the compiled sources... what am I missing?

我的项目是ARC安全的,但Apple提供的与Keychain交互的参考不是。我想为该单个文件禁用ARC。我还缺少什么?

3 个答案:

答案 0 :(得分:6)

在不同的项目中,我已经在4.2中不止一次地发生了这种情况,但后来我无法对错误报告进行足够可靠的重现。但我可以说,在我的情况下,一个干净的构建清理了它。

答案 1 :(得分:1)

单击“编辑”菜单,转到“重构”>转换为Objective-C ARC ...单击项目名称旁边的显示三角形,并检查要使用ARC的所有文件。

答案 2 :(得分:1)

通过为这些文件添加-fno-objc-arc编译器标志,可以为单个文件禁用ARC。

您在目标中添加编译器标志 - >构建阶段 - >编译源代码。您必须双击Compiler Flags下行的右列。您还可以通过按住cmd按钮选择文件,然后按Enter键以显示标志编辑框,将其添加到多个文件中。

我创建了一个示例项目:https://github.com/jaminguy/NoArc

有关详细信息,请参阅此答案:禁用某些文件的自动引用计数