在苹果的开发API中有3个不同的通知,分别是广播通知、本地通知、推送通知。
广播通知
广播通知,即观察者模式中的通知机制,它可以实现在相同进程中实现一个对象对多个对象的通信,它在异步调用返回结果给多个对象时使用非常广泛。
观察者模式的具体应用有两种:
模式1、通知机制
模式2、KVO机制
通知机制是一个对多个对象之间的通信,不同于委托,因为委托是一对一的对象之间的通信。
在通知机制中,对某个通知感兴趣的所有对象都可以成为接收者,首先这些对象需要向通知中心(NSNotificationCenter)发出addObserver:selector:name:object:消息进行注册,在投送对象投送通知给通知中心时,通知中心就会把通知广播给注册过的接收者。所有接收者都不知道通知是谁投送的,更不关心它的细节。
如果接收者不再关注,就会给通知中心发出removeObserver:name:object:消息解除注册,以后不再接收通知。
代码示例
发送通知
[[NSNotificationCenter defaultCenter] postNotificationName:NotificationName object:nil userInfo:notiDict];
接收通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getOrganizationInfoWhenBackView:) name:NotificationName object:nil];
实现通知中的方法
- (void)getOrganizationInfoWhenBackView:(NSNotification *)info
{
// do something
移除通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:NotificationName object:nil];