XCode - “' autorelease'不可用:在ARC模式下不可用“

时间:2014-07-22 05:53:14

标签: ios automatic-ref-counting asihttprequest

当我使用ASIFormDataRequest库向服务器实现发布数据时出现问题,我已经应用了Edit> Refactor>转换为Obj-c语法

2 个答案:

答案 0 :(得分:4)

首先,你应该有一个计划尽快摆脱ASIHTTPRequest。这是discontinued since September 2011。如果你正在开始一个新项目,你现在应该切换到别的东西。我建议AFNetworking;有一个介绍here

如果您正在尝试维护较旧的项目,请继续阅读。

您在此处遇到的编译器错误是因为ASIHTTPRequest代码早于2011年引入的自动引用计数(ARC)。您可以阅读the ARC transition in Apple's documentation。使用ARC,编译器会在适当的位置插入等效的retainreleaseautorelease。不允许在代码中调用这些函数。

确实有将MRR代码迁移到ARC的工具,但没有必要改变这个库。只需在ASIHTTPRequest源的Compile Sources构建阶段设置-fno-objc-arc即可。更多详情here

如果您真的复活了2011年或更早的项目,那么您的整个项目很可能不是ARC准备好的。在这种情况下,您可以为整个目标设置关闭ARC;您可以找到有关如何执行此操作的更多详细信息here

但是,如果你没有复活旧项目,你应该只使用AFNetworking。它很现代,很活跃,而且很有效。

答案 1 :(得分:0)

使用ARC,编译器会在正确的位置插入retainreleaseautorelease。因此,程序员无法使用这些消息。