【问题标题】:What are ARC restrictions, and how can I remove them?什么是 ARC 限制,我该如何移除它们?
【发布时间】:2012-04-12 20:05:46
【问题描述】:

我刚刚下载了一个 Xcode 项目,我收到了所有关于“ARC Restrictions”的错误。这些是什么,如何删除它们?

【问题讨论】:

  • 你能分享一个这些限制的例子吗?
  • 你有没有试过阅读ARC Restrictions下面写的文字?

标签: objective-c ios xcode debugging xcode4


【解决方案1】:

ARC 自动跟踪内存释放和保留,因此您无法手动释放和保留任何内存。

ARC 也不允许在编译时调用未在接口中声明原型的任何方法。

它还引入了新的@autoreleasepool 块。所以它不允许自动旧的自动释放对象

但是它允许写dealloc方法,但不允许调用[super dealloc]。

blog 有更多关于 ARC 的文章,您可以在此处查看

您可以通过以下方式使用 xcode 将您的项目转换为 ARC。 转到编辑->重构->转换为目标c弧。

但是它与 git 存储库存在一些兼容性问题,因此当项目中有 .git 文件夹时它不会转换。所以你必须先删除它然后再转换它。检查这个link

【讨论】:

    【解决方案2】:

    objective-c 中基本上有两个版本的内存管理。 ARC 和...好吧,“不是 ARC” :-) 您可能下载了一个项目,该项目还没有使用 ARC。解决问题的最简单方法是指示编译器将您的源视为“非 ARC”。 Explained here.

    here 是一个很好的教程,可以帮助您开始使用 ARC。

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多