我想使用LLVM GCC 4.0编译器进行编译,并且在我的.m文件的多个位置出现此错误:ARC禁止'释放'的显式消息发送 我试过使用-fno -objc-arc作为编译器标志,但会返回错误:无法识别的命令行选项“-fno-objc-arc”。编译时出现ARC错误
我该如何解决这个问题?
我想使用LLVM GCC 4.0编译器进行编译,并且在我的.m文件的多个位置出现此错误:ARC禁止'释放'的显式消息发送 我试过使用-fno -objc-arc作为编译器标志,但会返回错误:无法识别的命令行选项“-fno-objc-arc”。编译时出现ARC错误
我该如何解决这个问题?
只需删除所有致电-release
。您不允许在ARC下拨打-release
,因为编译器会为您插入所有必要的retain
/release
调用。阅读更多关于ARC here。
另一种方法是使用转换工具,以及Xcode中可以将项目转化为ARC(包括移除这些调用)为您:
要完全禁用ARC,改变你的构建设置:
但是,我建议你开始使用ARC,它会使事情变得更容易,而且实际上也更快。
如果你碰巧使用ASI(http://allseeing-i.com/ASIHTTPRequest/How-to-use)API,请参考这个答案,因为它需要使用-fno-OBJ弧标志为特定的类建立... Files doesn't support the ARC feature, how to deal with和参考标题为答案“禁用ARC对于这一类'
有没有什么办法可以在LLVM编译器中禁用ARC?当我点击Convert to Objective-C ARC ...它说所有的目标已经在使用它。 – Ben
当然,我会在一秒钟内更新我的答案。 – jtbandes