0

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

谢谢!

4

1 回答 1

0

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

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

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

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

于 2013-11-05T07:58:10.993 回答