2013-11-04 40 views
0

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

谢谢!

回答

0

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和XPCWWDC2012会议。