Самым простым способом реализации многопоточности, вероятно, будет использование NSOperationQueue.Вы подкласс NSOperation или создаете NSBlockOperation с блоком кода, который вы хотите запустить в фоновом режиме.Установите блок завершения, если вам нужно получать уведомление в главном потоке о завершении фоновой задачи.Затем добавьте свою операцию в NSOperationQueue, и все готово!Вы также можете установить зависимости от операции для запуска серии событий по одному или добавить много операций в очередь, если вам все равно, в каком порядке они выполняются.
Есть и другие способывыполнения потоков, но NSOperation особенно хорош, поскольку он объединяет все в аккуратную единицу работы, где вы с меньшей вероятностью допускаете ошибки в общей памяти, а также вы можете доверять NSOperationQueue, чтобы посмотреть количество ядер в вашем устройствепоступайте правильно, когда нужно выполнить много операций одновременно.