2016-04-19 28 views
1

我想有一個方法,暫停執行,直到收到通知之後才繼續。它會在收到通知後繼續執行。做這件事的最好方法是什麼?等到NSNotification收到

+2

是否有可能的方法分成兩個不同的方法?你現在打電話給你的第一個,當你收到通知時,第二個會被調用。 – CrimsonChris

+0

你應該用一些代碼更新你的問題。沒有背景就無法回答。 – CrimsonChris

+0

*「我希望有一種方法可以在繼續執行之前暫停執行,直到收到通知爲止*」。這不是一個好計劃。正確編寫代碼以事件驅動的方式工作。 – rmaddy

回答

3

您可以使用NSRunLoop

- (BOOL)method { 
__block BOOL finish = NO; 
[[NSNotificationCenter defaultCenter] addObserverForName:@"myNotification" object:nil queue:nil usingBlock:^(NSNotification *note) { 
    finish = YES; 
}]; 

while(!finish) { 
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 
} 

return YES; 
} 
相關問題