【问题标题】:Will Applications with ARC enabled and with armv6 work below iOS4 versions?启用 ARC 和 armv6 的应用程序是否可以在 iOS4 版本以下运行?
【发布时间】:2012-06-12 10:52:41
【问题描述】:

启用 ARC 和 armv6 组合的应用程序是否可以在 iOS4 版本以下运行?

【问题讨论】:

  • 不,不会。如果您不使用任何 _weak 所有权,您可能会使其正常工作。
  • @rokjarc 感谢您的快速回复,请详细说明。
  • 我编辑了我的评论。它可以工作 - 但除非绝对必要,否则我真的不会去那里。
  • 如果我没记错的话,iOS >= 5.0 支持 _weak 引用。您在 XCode 中设置的部署目标操作系统是什么?
  • ARC 使用的发布机制存在问题,该问题在 iOS 4.1 及更低版本上不可用。你可以使用weak,但你可以使用unsafe_unretain

标签: objective-c ios ios5 ios4 automatic-ref-counting


【解决方案1】:

来自documentation

适用于 Mac OS X v10.6 和 v10.7(64 位)的 Xcode 4.2 支持 ARC 应用程序)和 iOS 4 和 iOS 5。弱引用不是 在 Mac OS X v10.6 和 iOS 4 中受支持。

由于 iOS 5.0 之前的版本不支持弱引用,我认为您不能在旧项目中运行启用 ARC 的项目。

编辑:感谢@rokjarc 提到unsafe_unretained,它将在iOS 4 以上的设备上工作以替换弱引用。但是对于 OP 关于“ARC 项目是否可以在 iOS 4.0 之前的版本上工作”的问题的答案必须是否定的。

【讨论】:

  • 您可以在 iOS 4 中使用 ARC,但不能使用 weak,您必须使用 unsafe_unretained 并注意在必要时设置为 nil
  • 感谢 rokjarc,但 OP 询问是否让 ARC 在 iOS 4 版本以下工作。我也会在答案中提到 unsafe_unretained
  • @Krishnabhadra 感谢您的回答,但请您给我更多的说明。
  • 你需要澄清哪一部分?
  • @Krishnabhadra 我在采访中被问到这个问题,据我所知,我回复了他,因为我自己在设备上进行了测试,所以面试官问我是否启用 ARC 的应用程序在 iOS 4.0 以下无法运行,那么该应用程序的用途是什么。我对他的回复感到有些困惑,所以请稍微解释一下。,由于我是这项 iOS 技术的新手,我期待有经验的人的确认。
【解决方案2】:

您无法在 armv6 中启用 ARC。如果架构是 armv6 armv7 或只有 armv7 那么您可以启用 ARC。

所以回答你的问题:它在 iOS4 版本以下不起作用。

【讨论】:

    【解决方案3】:

    在您的架构中添加 armv6 和 armv7,所有版本都支持此操作

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      相关资源
      最近更新 更多