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

时间:2011-12-26 07:47:50

标签: ios5 automatic-ref-counting

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

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

我得到的错误:

ARC forbids explicit message send of autorelease

我该怎么做才能解决这个问题。

2 个答案:

答案 0 :(得分:14)

我有解决方案,我需要为每个不支持ARC的文件的编译器标志添加正确的标志。对我来说,我使用Xcode 4.2,因此在target -> Build Phases -> Compile Sources下,双击要禁用ARC功能的文件,然后点击-fno-objc-arc点击Done。它完成了;)

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

答案 1 :(得分:9)

为该一个班级禁用ARC

将项目迁移到ARC时,会将-fobjc-arc编译器标志设置为所有Objective-C源文件的缺省值。您可以使用该类的-fno-objc-arc编译器标志为特定类禁用ARC。

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