【问题标题】:XCode - “'autorelease' is unavailable: not available in ARC mode”XCode - “'autorelease' 不可用:在 ARC 模式下不可用”
【发布时间】:2014-09-12 19:56:15
【问题描述】:

当我使用 ASIFormDataRequest 库将数据发布到服务器时出现问题,我已应用 Edit>Refactor>Convert to Obj-c Syntax

【问题讨论】:

  • 第一件事,使用AFNetworking 代替ASIHTTPRequest。

标签: ios automatic-ref-counting asihttprequest


【解决方案1】:

首先,您可能应该有一个计划,尽快摆脱 ASIHTTPRequest。一直是discontinued since September 2011。如果您正在开始一个新项目,您现在应该切换到其他项目。我建议AFNetworking;有介绍here

不过,如果您想维护一个较旧的项目,请继续阅读。

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

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

但是,如果您真的要恢复 2011 年或更早的项目,那么您的整个项目可能还没有准备好 ARC。在这种情况下,您可以在整个目标设置中关闭 ARC;你可以找到更多关于如何做到这一点的细节here

不过,如果您不想恢复旧项目,您可能应该只使用 AFNetworking。它很现代,很活跃,而且很有效。

【讨论】:

    【解决方案2】:

    对于 ARC,retainreleaseautorelease 由编译器插入到正确的位置。因此,这些消息对程序员是不可用的。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2020-04-21
      • 2017-03-17
      相关资源
      最近更新 更多