2011-06-11 66 views
2

是否有可能like'有沒有辦法像線程一樣調用NSNotificationQueue?

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

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

sothat的運行的通知「 - (無效)TestMethod的」去上執行的NSLog,...,沒有這些方法,至極被通知沒叫完。 無論如何解決它,沒有線程?

+4

不清楚你在問什麼。添加更多的代碼,並顯示預期的輸出。 – bbum 2011-06-11 21:44:07

回答

0

我想你想調用方法異步。 答案是NO:你不能在同一個線程中異步調用方法。 檢查文檔:

通知中心提供 通知觀察員 同步。換句話說, postNotification:方法不會返回 ,直到所有觀察者都有 收到並處理了 通知。發送通知 異步使用 NSNotificationQueue。

+0

我嘗試過關於NSNotificationQueue,但我只是發現,當它發送notifikation時,調用方法甚至必須等到它完成所有被調用的notifikation methods.I認爲我必須做一個線程之間或OperationQueue和Notifikations。 – user770961 2011-06-12 02:46:54

0

NSNotificationQueue不用於異步目的。 參考: NSNotificationQueue對象(或簡單通知隊列)充當通知中心(NSNotificationCenter的實例)的緩衝區。儘管通知中心在發佈通知時分發了通知,但放入隊列的通知可能會延遲,直到當前通過運行循環結束或直到運行循環處於空閒狀態。重複通知也可以合併,以便儘管發佈多個通知,但只發送一個通知

相關問題