Есть ли способ вызвать NSNotificationQueue как поток? - PullRequest
2 голосов
/ 12 июня 2011

Можно ли запускать уведомления, как´

-(void) testMethod
{
   [[NSNotificationQueue defaultQueue] enqueueNotification:[NSNotification    notificationWithName:@"TEST123" object:self userInfo:parms]postingStyle:NSPostNow  coalesceMask:NSNotificationNoCoalescing forModes:nil];

NSLog(@"test123");
//.....

так что "- (void) testMethod" продолжит выполнение NSLog, ..., без чего методы, которые вызываются уведомлениями, закончили. Есть ли вообще решить это без темы?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2012

NSNotificationQueue не используется в асинхронных целях.Ссылка: NSNotificationQueue объекты (или просто очереди уведомлений) действуют как буферы для центров уведомлений (экземпляры NSNotificationCenter).Принимая во внимание, что центр уведомлений распределяет уведомления при их публикации, уведомления, помещенные в очередь, могут быть отложены до конца текущего прохода цикла выполнения или до тех пор, пока цикл выполнения не будет свободен.Дублирующие уведомления также могут быть объединены, так что отправляется только одно уведомление, хотя отправляется несколько уведомлений

0 голосов
/ 12 июня 2011

Я думаю, что вы хотите вызывать методы асинхронно.Ответ НЕТ: вы не можете вызывать методы асинхронно в одном потоке.Проверьте документы:

Центр уведомлений доставляет уведомления наблюдателям синхронно.Другими словами, методы postNotification: не возвращаются, пока все наблюдатели не получили и не обработали уведомление.Для асинхронной отправки уведомлений используйте NSNotificationQueue.

...