有时候我们通知希望只监听到一次后就不再监听了,可以如下处理
__block id observer = [[NSNotificationCenter defaultCenter] addObserverForName:kNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
NSLog(@"跑了一次");
[[NSNotificationCenter defaultCenter] removeObserver:observer];
}];
addObserverForName方法会返回一个id <NSObject>类型,可以在监听到通知后进行移除。