iOS开发通知NSNotifacationCenter的使用

NSNotifacationCenter(通知)通信的特点是:为单例模式,可以实现一对多通信。
通知是观察者(observer)模式的一种,结构为:发布者->通知中心->接受者。

  • 通知的通信过程


    iOS开发通知NSNotifacationCenter的使用_第1张图片
发布通知方法
Name:   该通知的名字
object:   通知的发送者 一般为self
userInfo:传递的附加信息(字典类型的)
 [[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSNotificationName) object:(nullable id) userInfo:(nullable NSDictionary *)];

注册通知方法

observer: 观察者(一般在控制器中是self)
aSelector:监听到通知后触发的那个方法 
name: 通知的名字
bject:  监听哪个对象发出的通知,如果使用"nil"值,代表监听所有通知。
[[NSNotificationCenter defaultCenter] addObserver:(nonnull id) selector:(nonnull SEL) name:(nullable NSNotificationName) object:(nullable id)];

aSelector:监听到通知后触发的那个方法 例如

- (void)receiveotification:(NSNotification *)notification {
    NSLog(@"收到通知了");
   NSDictionary *dic =  notification.userInfo;
}

不要忘了在注册观察通知的控制器的dealloc方法中移除要观察的通知。

-(void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
}

你可能感兴趣的:(iOS开发通知NSNotifacationCenter的使用)