【问题标题】:iOS 5+ and dispatch_releaseiOS 5+ 和 dispatch_release
【发布时间】:2013-11-15 00:27:11
【问题描述】:

我正在开发一个将其部署目标设置为 iOS 5.0 的应用。我已经阅读了几篇关于编译器抱怨在部署目标设置为 iOS 6 或更高版本时使用 dispatch_release 的帖子,所以它并没有抱怨我,但我不确定我是否需要处理这个问题。我一直在 iOS 6 和 7 设备上进行测试,但没有看到任何奇怪的东西......这可能是个问题,不使用 dispatch_release 或不取决于运行应用程序的系统版本吗?将应用提交到商店时甚至会成为拒绝的理由吗?

谢谢!

【问题讨论】:

    标签: ios5 ios6 ios7 release grand-central-dispatch


    【解决方案1】:

    dispatch_retaindispatch_release 的可用性取决于您是否使用 ARC 构建以及使用的部署目标,而不取决于运行代码的操作系统版本(除了需要大于或等于部署目标明显):

    如果使用 ARC 和 iOS 6 或更高版本的部署目标构建 Objective-C 代码,dispatch_retaindispatch_release 等效于 -[retain]-[release] 方法,因此不可用这些方法不可用,并导致 ARC 下的编译器错误。

    如果不满足这些条件(例如,您正在构建纯 C 代码,而不是使用 ARC 构建或使用 iOS 5 部署目标),dispatch_retaindispatch_release 可用并且可以不加改变地使用(确实必须用于避免泄漏)并且生成的代码将在 iOS 6 或更高版本上运行良好。

    有关更多详细信息,请参阅 <os/object.h> 中的 headerdoc,或观看有关 具有块、GCD 和 XPC 的异步设计模式WWDC2012 会话。

    【讨论】:

      猜你喜欢
      • 2012-11-22
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多