首先了解一下通知模式
通知模式---就是一个对象能够给其他任意数量的对象广播信息,对象之间没有耦合关系.
每一个应用程序都有一个通知中心 NSNotificationCenter的实例,专门协助不同的对象之间的消息传递,任何的对象都可以通过通知中心发布信息,来描述自己做要什么事情,其他感兴趣的对象(Observer)可以监听这个通知
如下图:
A对象 发布一个通知 对这个通知 感兴趣的对象 Observer1,Observer2,Observer3可以监听这个通知
A对象发布通知的方法
- (void)postNotification:(NSNotification *)notification;
其他三个对象(Observer1,Observer2,Observer3) 监听通知的方法
- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
observer:监听器,即谁要接收这个通知
aSelector:收到通知后,回调监听器的这个方法,并且把通知对象当做参数传入 例如: 方法是 push:
aName:通知的名称。如果为nil,那么无论通知的名称是什么,监听器都能收到这个通知
anObject:通知发布者。如果为anObject和aName都为nil,监听器都收到所有的通知
//实现监听的方法
- (void)push:(NSNotification *)noti ;
//当控制器注销时 移除通知 (因为:发布通知时,系统会利用指针 指向发布的地址,当控制器注销时,地址仍然存在,会导致程序Crash)
- (void)removeObserver:(id)observer;