Задний план
Я разработчик, который пытается создать приложение для Mac. Я собираюсь достать Snow Leopard. До сих пор я строил на Леопарде. Я занимаюсь разработкой Cocoa всего около года не очень интенсивно.
Я много читал о Snow Leopard и, в частности, о Grand Central Dispatch. Я знаю, что он использует блоки, но я не вдавался в подробности того, как работают блоки или как работает Grand Central Dispatch.
Мой вопрос
Как мне лучше всего разработать одну базу кода для Snow Leopard и Leopard, при этом максимально используя преимущества новой многопоточности в Snow Leopard?
NSOperationQueue
Мой инстинкт не состоит в том, чтобы иметь дело с GCD непосредственно в моем коде, но когда что-то нужно поместить в очередь, используйте NSOperationQueue, так как я читал из сеансов вопросов и ответов Майка Эша, что в Snow Leopard NSOperationQueue в полной мере использует GCD и сбой, который он обнаруженный в Leopard теперь исправлен.
Ручное управление потоками
Однако, когда дело доходит до управления определенными фоновыми потоками, есть ли способ воспользоваться преимуществами более простых в использовании средств управления потоками в Snow Leopard, не нарушая при этом вещей в Leopard? Или люди порекомендовали бы мне иметь разные цели для каждой ОС с разными классами в каждой? Мне это могло показаться техническим кошмаром, который только и ждет, чтобы случиться.
Или, может быть, мне просто следует жить с тем, что мое приложение не полностью оптимизировано для Snow Leopard, и придерживаться +(void)detachNewThreadSelector:toTarget:withObject:
или чего-то подобного.
Что думают люди?