如何检测iPhone上的Grand Central Dispatch功能支持?

时间:2011-10-06 05:55:10

标签: objective-c ios4 grand-central-dispatch

我开始认为我想测试或检测iOS是否是版本4.x所以我知道我可以使用Grand Central Dispatch来运行并发线程。如果它小于iOS 4,我会运行代码,但不是作为一个线程,并采取命中。但在读取堆栈溢出时我读了 -

----“您应该完全避免询问系统版本。 更好的设计会询问特定功能。例如:if(NSClassFromString(@“UIPrintInfo”))会告诉您当前设备是否支持打印API,可在4.2或更高版本中使用。这样,您可以计划代码以使用功能(如果可用),而不是基于操作系统版本。“

这是有道理的。因此,我不会测试iOS 4,而是使用哪种代码安全方法来检测Grand Central Dispatch支持?

1 个答案:

答案 0 :(得分:4)

您可以通过将函数与NULL进行比较来检查函数是否存在,如下所示:

if (dispatch_async != NULL) {
    NSLog(@"We have GCD");
}
else {
    NSLog(@"We don't have GCD");
}

注意:我实际上没有测试过这个。