您的位置:首页 > 其它

文章标题

2015-08-06 16:07 274 查看

通知

通过学习’KVO’,我们发现’KVO’是一种简单的观察者设计模式,涉及到两个对象,分别是观察者和被观察者。这种方式实质上有很大的局限性,那么OC的’Foundation’框架,在基于’KVO’的基础上又为开发者提供了一种新的观察者设计模式,即’通知’。

通知是一种发送给一个或者多个观察者用来通知其在程序中发生了某个时间的消息。它是一种程序中时间的发起者(处理者)和其他想要知道该事件的对象的沟通的一种方式。消息的接受者,即观察响应该事件来变换自己的UI、行为或状态。

在OC中,使用’NSNotification’类来初始化一个通知,

//初始化一个NSNotification类的实例对象
NSNotification *notification = [NSNotification notificationWithName:@"通知的名称" object:self];
NSNotification *notification2 = [NSNotification notificationWithName:@"通知名称" object:self userInfo:@{@"content":@"JAY on living"}];


其中:

1.name:表示通知名称,最好英文名,用来识别通知对象

2.object:表示通知的发起人

3.userInfo:表示通知的内容

在现在生活中,我们的邮件都需要由邮局发送给接收人。在OC中也一样,’Founddation’框架定义了一个单例类,通知中心’NSNotificationCenter’来统一发送通知的实例对象给观察者

//通知中心 单例类
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
//通知中心发送通知
[center postNotification:notification1];


简便写法,通知中心直接发送通知

//    [center postNotificationName:(NSString *) object:(id)];
//    [center postNotificationName:(NSString *) object:(id) userInfo:(NSDictionary *)];


建立通知发送机制,步骤如下:

1.注册相关监听者,并实现监听收到通知时的方法

2.在需要的时候,被监听的对象去通知中心发送通知

3.在’dealloc’方法中,移除通知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: