2013-09-23 102 views
1

我有一個多線程程序通過NSNotificationCenter(addObserver:..和postNotification:...方法)發送消息。NSNotification沒有收到

線程訂閱了不同的通知,其中一些通知共享,以便應該在各種線程中接收消息。

通常,所有通知都在所有線程中正確接收和處理,但有時通知的回調函數不會在正在偵聽通知的某些線程中調用。

有沒有辦法確保我所有的通知都會被所有訂閱的線程處理?

回答

1

重要的不是您訂閱通知的線程,而是發佈通知的線程。您可能必須編寫自己的通知管理器才能實現此目的。我不認爲這會過於複雜,我會建議使用dispatch_queue_t而不是線程。

+0

對不起,但我不明白。所有通知都發布在同一個線程中。爲什麼有些人被收到而其他人沒有? – poorDeveloper

+0

如果您提供了一些您正在使用的代碼,可能會更容易幫助您確定出錯地點。 –

+0

剛剛解決!回顧我的代碼,我意識到通知工作正常。問題是NSPort在通知觀察者的監聽器中執行操作的參數。感謝您的合作! – poorDeveloper

0

NSNotificationCenter在原始通知已觸發的相同線程上啓動註冊的mehod。你確定這個線程還活着嗎?

+0

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