Я ленив, поэтому моя философия - выбрать самое простое решение, которое делает все, что мне нужно. (Мне нравится думать, что это «ленивый», поддерживаемый Ларри Уоллом, но иногда мне интересно.)
Итак, мой порядок предпочтений будет:
- Асинхронные вызовы методов
NSOperationQueue
- Grand Central Dispatch
- Тема
Существует увеличение сложности и гибкости с каждым шагом вниз. Если вам нужна дополнительная гибкость, то сложность, вероятно, того стоит.