iOS 5+和dispatch_release

时间:2013-11-04 11:32:35

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

请参阅<os/object.h>中的headerdoc以获取更多详细信息,或观看使用Blocks,GCD和XPC的异步设计模式

WWDC2012会话。