我正在开发一个将其部署目标设置为iOS 5.0的应用程序。我已经阅读了几篇关于编译器抱怨在部署目标被设置为iOS 6或更高版本时使用dispatch_release
的帖子,所以它不会为我抱怨,但我不确定是否需要处理这个问题。我一直在iOS 6和7设备上测试,我没有看到任何奇怪的东西......这可能是一个问题,不要使用dispatch_release
或不取决于运行应用程序的系统版本?将应用程序提交到商店时,它甚至会成为拒绝的理由吗?iOS 5+和dispatch_release
谢谢!
我正在开发一个将其部署目标设置为iOS 5.0的应用程序。我已经阅读了几篇关于编译器抱怨在部署目标被设置为iOS 6或更高版本时使用dispatch_release
的帖子,所以它不会为我抱怨,但我不确定是否需要处理这个问题。我一直在iOS 6和7设备上测试,我没有看到任何奇怪的东西......这可能是一个问题,不要使用dispatch_release
或不取决于运行应用程序的系统版本?将应用程序提交到商店时,它甚至会成为拒绝的理由吗?iOS 5+和dispatch_release
谢谢!
的dispatch_retain
& dispatch_release
的可用性取决于您是否与ARC和所使用的部署目标建立,但不上的代码被从需要大于或等于部署目标显然对(运行抛开OS解锁):
如果构建Objective-C代码与ARC和与iOS 6或更大的部署目标,dispatch_retain
& dispatch_release
等同于-[retain]
& -[release]
方法,并因此以相同的方式不可用的那些方法是不可用的,并导致ARC下的编译器错误。
如果这些条件不能满足(例如,你正在构建纯C代码,而不是与ARC建设或者使用iOS 5的部署目标),dispatch_retain
& dispatch_release
可用,可用于不变(实际上必须使用以避免泄漏),并且生成的代码在iOS 6或更高版本上运行良好。
见<os/object.h>
的headerdoc了解更多详情,或异步设计模式与块,GCD和XPC看WWDC2012会议。