等到收到 NSNotification

wil*_*321 2 objective-c ios

我想有一种方法可以暂停执行,直到在继续之前收到通知。它将在收到通知后继续执行。这样做的最佳方法是什么?

小智 5

你可以使用 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;
}
Run Code Online (Sandbox Code Playgroud)