只是想知道是否有办法使用 NSNotification 观察器作为 if 语句参数,或者在您的选择器部分有一段代码
如
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( { SOME NEW CODE GOES HERE! ) name:@"addressTypeChanged" object:nil];
OR
if ([[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(self) name:@"addressTypeChanged" object:nil]) {
//some code//
}
最佳答案
您的第一行:不,无法在@selector()
中放置 block 。可能值得看看 @selector 是什么以及它是如何工作的。 Here's one particular question这可能会让您走上正轨。
第二行: addObserver:selector:...
方法有一个 void
返回类型,并且总是等同于 NO
在 if
语句中。
您可能正在寻找的是基于 NSNotificationCenter
block 的 API:
- (id)addObserverForName:(NSString *)name
object:(id)obj
queue:(NSOperationQueue *)queue
usingBlock:(void (^)(NSNotification *))block
block
参数将在收到通知时调用。
关于ios - 使用 NSNotification 作为 if 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138707/