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

Mal*_*loc 6 ios5 automatic-ref-counting

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

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]];
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

ARC forbids explicit message send of autorelease
Run Code Online (Sandbox Code Playgroud)

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

Mal*_*loc 14

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

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


Sno*_*uin 9

禁用该类的ARC

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

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