Как ждать в NSThread, пока в iOS не произойдет какое-то событие?

Как ждать внутри NSThread, пока в iOS не произойдет какое-то событие?

Например, мы создали NSThread и начали цикл потока. Внутри цикла потока есть условие, чтобы проверить, есть ли в очереди сообщений какие-либо сообщения. Если есть сообщение, оно вызовет соответствующий метод для выполнения какой-либо операции, иначе следует дождаться, пока очередь сообщений не заполнится новым сообщением.

Есть ли какие-либо API или методы, доступные для ожидания какого-либо события?

For Example 

NSThread *thread = [NSThread alloc]....@selector(threadLoop)

- (void)threadLoop
{
   // Expecting some API or method that wait until some messages pushed into the message queue
   if (...) {

   }
}

Любая помощь должна быть оценена.

Ответы на вопрос(3)

Ваш ответ на вопрос