我有一個多線程程序通過NSNotificationCenter(addObserver:..和postNotification:...方法)發送消息。NSNotification沒有收到
線程訂閱了不同的通知,其中一些通知共享,以便應該在各種線程中接收消息。
通常,所有通知都在所有線程中正確接收和處理,但有時通知的回調函數不會在正在偵聽通知的某些線程中調用。
有沒有辦法確保我所有的通知都會被所有訂閱的線程處理?
我有一個多線程程序通過NSNotificationCenter(addObserver:..和postNotification:...方法)發送消息。NSNotification沒有收到
線程訂閱了不同的通知,其中一些通知共享,以便應該在各種線程中接收消息。
通常,所有通知都在所有線程中正確接收和處理,但有時通知的回調函數不會在正在偵聽通知的某些線程中調用。
有沒有辦法確保我所有的通知都會被所有訂閱的線程處理?
重要的不是您訂閱通知的線程,而是發佈通知的線程。您可能必須編寫自己的通知管理器才能實現此目的。我不認爲這會過於複雜,我會建議使用dispatch_queue_t
而不是線程。
對不起,但我不明白。所有通知都發布在同一個線程中。爲什麼有些人被收到而其他人沒有? – poorDeveloper
如果您提供了一些您正在使用的代碼,可能會更容易幫助您確定出錯地點。 –
剛剛解決!回顧我的代碼,我意識到通知工作正常。問題是NSPort在通知觀察者的監聽器中執行操作的參數。感謝您的合作! – poorDeveloper