我已经下载了 iOS 5 SDK,发现 ARC 是 Apple 新编译器的一大特色。目前,许多第三方框架不支持 ARC。我可以将 ARC 用于我的新代码并保持当前的保留/发布代码不变吗?ARC转换器在这里不起作用,因为某些框架,例如JSONKit,无法使用转换器将其转换为ARC。
编辑:
答案是为-fno-objc-arc不需要 ARC 的文件添加编译器标志。在 Xcode 4 中,您可以在 target -> Build Phases -> Compile Sources 下执行此操作。
我已经下载了 iOS 5 SDK,发现 ARC 是 Apple 新编译器的一大特色。目前,许多第三方框架不支持 ARC。我可以将 ARC 用于我的新代码并保持当前的保留/发布代码不变吗?ARC转换器在这里不起作用,因为某些框架,例如JSONKit,无法使用转换器将其转换为ARC。
编辑:
答案是为-fno-objc-arc不需要 ARC 的文件添加编译器标志。在 Xcode 4 中,您可以在 target -> Build Phases -> Compile Sources 下执行此操作。
如何在MULTIPLE文件上禁用 ARC 不是很直观,有一段时间我一个一个地做,直到弄清楚如何做到这一点。
公开的 ARC 文档虽然没有直接明确这一点,但似乎暗示只要每个类都是 ARC 或都是手动管理的,这些类就可以集成到一个程序中。
您不能在一个班级中混合使用 ARC 和非 ARC;该文件说,在 ARC 代码中禁止以任何方式(包括使用 的计时器和延迟执行)发送retain、release、autorelease或消息。因此,您不能在 ARC 类中执行非 ARC(因为必要的消息被禁止),并且您不能在非 ARC 类中执行 ARC(因为 ARC 添加了没有 ARC 无效的语法元素)。retainCount@selector
关于是否可以将非 ARC 库/框架集成到 ARC 程序中,同一份文档更加清晰:是的。它没有提到您是否可以在所有代码都是非 ARC 的程序中使用 ARC 库/框架,但鉴于上述所有情况,暗示似乎是肯定的。
如果您想为某些文件禁用自动引用计数,那么只需按照步骤操作就可以了。您在 Targets -> Build Phases -> Compile Sources 中添加编译器标志。

使用的标志是-fno-objc-arc写完后按回车!您必须双击编译器标志下行的右列。希望对您有所帮助谢谢:)
可以通过为这些文件添加 -fno-objc-arc 编译器标志来禁用单个文件的 ARC。