我希望在收到" ready"时做一些动作。通知。
基本上,我们这样做:
// earlier in a method
...
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector( notificationHandler )
name:@"ready"
object:nil];
// later in file
- (X) notificationHandler{
...
}
在我的情况下,处理通知的方法将是一行常设函数,所以如果可能的话,我想在观察者块中定义它。
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector( I WANT TO DEFINE A FUNCTION HERE )
name:@"ready"
object:nil];
有什么想法吗?
答案 0 :(得分:2)
只是为了让你知道存在这种方法:
[[NSNotificationCenter defaultCenter] addObserverForName:@"ready"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
//Do something
}];
并且您正在谈论在@selector
指令中编写函数或块 ...没有意义且不可能
享受上述功能;)
答案 1 :(得分:1)
即使有一些官方API可以做到这一点,我强烈建议你不使用它们,因为它们是leaked。您可以使用Nick Lockwood的FXNotifications,它提供您想要的功能:使用块作为通知监听器。
添加.h
&项目中的.m
个文件,然后调用:
[[NSNotificationCenter defaultCenter] addObserver:self
forName:@"ready"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification *note, id observer) {
// Your inline function here
}];