我怎样才能听到发送到iOS NSNotificationCenter的默认中心的所有通知?
我想听所有派发到defaultCenter的通知。 公共和私人。 有谁知道我怎么能做到这一点?
使用NSNotificationCenter的addObserverForName:object:queue:usingBlock:
OR addObserver:selector:name:object:
方法,并传递名称和对象的nil。
例
下面的代码应该可以完成这个工作:
- (void)dumpNotifications { NSNotificationCenter *notifyCenter = [NSNotificationCenter defaultCenter]; [notifyCenter addObserverForName:nil object:nil queue:nil usingBlock:^(NSNotification *notification){ // Explore notification NSLog(@"Notification found with:" "\r\n name: %@" "\r\n object: %@" "\r\n userInfo: %@", [notification name], [notification object], [notification userInfo]); }]; }
文件
这里是关于addObserverForName:object:queue:usingBlock:
的文档addObserverForName:object:queue:usingBlock:
具体来说,请参阅名称和obj参数。
addObserverForName:对象:队列:usingBlock:
向接收者的调度表添加一个条目,其中包含通知队列和要添加到队列中的块,以及可选条件:通知名称和发件人。
- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block
参数
名称
注册观察员的通知的名称; 也就是说,只有具有这个名字的通知被用来将该块添加到操作队列中。 如果您通过nil,通知中心不会使用通知名称来决定是否将该块添加到操作队列中。
OBJ
要将其通知添加到操作队列的对象。 如果您通过nil,通知中心不会使用通知发件人来决定是否将该块添加到操作队列中。
队列
应该添加块的操作队列。 如果你通过nil,块在发布线程上同步运行。
块
收到通知时要执行的块。 该块由通知中心复制,并保存(副本),直到观察者注册被删除。 该块有一个参数:
通知
通知。
- 在Xcode 6下通过SSH运行xcodebuildtesting时超时
- 如何隐藏UINavigationBar 1px的底线
- 可以在iOS中处理自己的http URLscheme?
- 由于Xcode 8和iOS10,视图在viewDidLayoutSubviews上的大小不正确
- 如何使用sendAsynchronousRequest:queue:completionHandler:
- UICollectionReusableView方法没有被调用
- Autolayout:添加约束到超级视图,而不是顶部布局指南?
- 在滚动UIScrollView期间UILabel更新停止
- 在iPhone上安assembly置文件 – 以编程方式