iOS通知中心-NSNotificationCenter

2016-11-22  本文已影响179人  Lxin_

NSNotification是iOS中一个调度消息通知的类,使用极为方便,但是劝各位还是慎用,当你日后修改工程的时候,看到密密麻麻的NSNotificationCenter,你就能体会到有多么痛苦。

基本用法

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;

- (void)postNotification:(NSNotification *)notification;

- (void)postNotificationName:(NSString *)aName object:(id)anObject;

- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
- (void)removeObserver:(id)observer;

- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;

使用流程

  1. 首先,我们在需要接收通知的地方注册观察者
//获取通知中心单例对象
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
//添加当前类对象为一个观察者,name和object设置为nil,表示接收一切通知
[center addObserver:self selector:@selector(notice:) name:@"123" object:nil];
  1. 之后,在我们需要时发送通知消息
 //创建一个消息对象
NSNotification * notice = [NSNotification notificationWithName:@"123" object:nil userInfo:@{@"1":@"123"}];
//发送消息
[[NSNotificationCenter defaultCenter]postNotification:notice];
  1. 我们可以在回调的函数中取到userInfo内容
//回调方法
- (void)notice:(id)sender {
    NSLog(@"%@",sender);
}

使用注意

上一篇 下一篇

猜你喜欢

热点阅读