文件不支持ARC功能,如何处理



我的项目使用ARC(自动引用计数器),所以当我尝试导入ASIHTTPRequest库时,它有4个类,在它们的实现中使用自动释放语句,这里有一个例子:

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]];

我得到的错误:

ARC forbids explicit message send of autorelease
我该怎么做才能解决这个问题呢?

我已经得到了解决方案,我需要为每个不支持ARC的文件的编译器标志添加正确的标志。对我来说,我使用Xcode 4.2,所以在target -> Build Phases -> Compile Sources下,双击你想禁用ARC功能的文件,把-fno-objc-arc放在Done上。它已经完成了;)

请注意,如果该文件不存在于列表中,您可以通过单击+按钮添加它,然后执行相同的工作。

为一个类禁用ARC

当你将一个项目迁移到使用ARC时,-fobjc-arc编译器标志被设置为所有Objective-C源文件的默认设置。你可以使用-fno-objc-arc编译器标志来禁用特定类的ARC。

在Xcode中,在目标Build Phases选项卡中,打开Compile Sources组以显示源文件列表。双击要设置标志的文件,在弹出面板中输入-fno-objc-arc,然后单击Done。

最新更新