Как определить поддержку функции Grand Central Dispatch на iPhone? - PullRequest
2 голосов
/ 06 октября 2011

Я начал с того, что хотел проверить или определить, была ли iOS версии 4.x, поэтому я знал, что могу использовать Grand Central Dispatch для запуска параллельного потока. Если бы это было меньше, чем iOS 4, я бы запустил код, но не как поток и принял бы удар. Но при чтении при переполнении стека читаю -

---- "Вам, вероятно, следует вообще не спрашивать о версии системы. Лучший дизайн будет спрашивать о конкретной функции. Например: if (NSClassFromString (@ "UIPrintInfo")) сообщит вам, поддерживает ли текущее устройство API печати, доступный в версии 4.2 или выше. Таким образом, вы можете запланировать, чтобы ваш код использовал функцию, если она доступна, но не на основе версии ОС. "

Это имеет смысл. Таким образом, вместо тестирования iOS 4, какой безопасный для кода метод я бы использовал для обнаружения поддержки Grand Central Dispatch?

1 Ответ

4 голосов
/ 06 октября 2011

Вы можете проверить, существует ли функция во время выполнения, сравнив ее с NULL следующим образом:

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

Примечание. На самом деле я не проверял это.

...