NSNotificationQueue,发件人和处理程序必须在同一个线程中吗?

时间:2014-03-03 09:56:06

标签: objective-c multithreading nsnotification

如果通过子线程触发通知,然后通过NSNotificationQueue(当然在子线程中调用)发布它,但是在主线程中使用处理程序,则不会调用处理程序。但是如果通知在主线程中触发,则它按预期工作。

Apple是否意味着通知发件人和处理程序必须位于同一个帖子中?如果是,NSNotificationQueue似乎没有那么有用。知道它的任何人请提前分享和感谢。

[[NSNotificationQueue defaultQueue] enqueueNotification:notification postingStyle:NSPostASAP coalesceMask:(NSNotificationCoalescingOnName) forModes:nil];

1 个答案:

答案 0 :(得分:1)

他们将在同一个主题中。如果您需要多线程,请查看NSOperationQueue

编辑:

来自NSNotificationQueue class reference:每个线程都有一个默认通知队列,该队列与任务的默认通知中心相关联。您可以创建自己的通知队列,每个中心和线程有多个队列。

+ (id)defaultQueue 返回当前线程的默认通知队列。此通知队列使用默认通知中心。