2011-12-26 64 views
6

我的项目使用ARC(自动引用计数器),所以当我尝试导入ASIHTTPRequest库,其中有4个类用于他们的实现autorelease语句,在这里有一个例子:文件不支持ARC功能,如何处理

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

,我得到了错误:

ARC forbids explicit message send of autorelease 

我应该做些什么来解决这个问题。

回答

14

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

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

9

禁用ARC为一类

在迁移项目中使用ARC,在-fobjc弧编译器标志被设置为默认为所有的Objective-C源文件。您可以使用该类的-fno-objc-arc编译器标志来禁用特定类的ARC。

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