2013-09-23 68 views
1

我有一个多线程程序通过NSNotificationCenter(addObserver:..和postNotification:...方法)发送消息。NSNotification没有收到

线程订阅了不同的通知,其中一些通知共享,以便应该在各种线程中接收消息。

通常,所有通知都在所有线程中正确接收和处理,但有时通知的回调函数不会在正在侦听通知的某些线程中调用。

有没有办法确保我所有的通知都会被所有订阅的线程处理?

回答

1

重要的不是您订阅通知的线程,而是发布通知的线程。您可能必须编写自己的通知管理器才能实现此目的。我不认为这会过于复杂,我会建议使用dispatch_queue_t而不是线程。

+0

对不起,但我不明白。所有通知都发布在同一个线程中。为什么有些人被收到而其他人没有? – poorDeveloper

+0

如果您提供了一些您正在使用的代码,可能会更容易帮助您确定出错地点。 –

+0

刚刚解决!回顾我的代码,我意识到通知工作正常。问题是NSPort在通知观察者的监听器中执行操作的参数。感谢您的合作! – poorDeveloper

0

NSNotificationCenter在原始通知已触发的相同线程上启动注册的mehod。你确定这个线程还活着吗?

+0

是的,所有的线程都活着。 – poorDeveloper