NSNotifacationCenter(通知)
通信的特点是:为单例模式,可以实现一对多通信。
通知是观察者(observer)模式的一种,结构为:发布者->通知中心->接受者。
-
通知的通信过程
发布通知方法
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];
}