Цель-C: выполнение блока или функции в определенном NSThread
NSObject
имеет метод -performSelector:onThread:withObject:waitUntilDone:
, который позволяет выполнять любой метод на вызывающем объекте в определенном NSThread
.
Существует ли подобный и удобный способ выполнения функции или блока в стиле C в конкретном NSThread
?
1 ответ:
API
NSThread
в основном основан на селекторе. В iOS 10 и macOS 10.12 есть API на основе блоков для инициализации или отсоединения потока, но не для выполнения какой-либо задачи на существующемNSThread
. Если вы хотите использовать API на основе блоков, вы обычно используете очереди диспетчеризации или операций,что избавляет вас от необходимости самостоятельно управлять экземплярамиNSThread
.Но если вы загуглите "расширение блока NSThread", вы увидите, что существуют простые сторонние API для предоставления блока методы для
NSThread
. Например, GTMNSThread+блоки.h или NSThread-MCSMAdditions.