https://github.com/YouXianMing

通知中心NSNotificationCenter的使用

通知中心NSNotificationCenter的使用

Cocoa框架中,通知中心以及KVO都属于设计模式中的观察者.

 

Source

在使用通知中心之前,对通知中心类进行了简单的封装,以便可读性更强.

NotificationCenter.h + NotificationCenter.m

通知中心发送消息的核心为,发送消息需要一唯一标示符flag来确认接受消息的对象.通知中心只是中介,它起着发送消息的作用.

我们来给一个model对象注册通知中心,在这个对象初始化的时候就注册,这个对象在销毁的时候就移除.

 

Usage

以下是使用情况以及相应的打印信息.

用起来是不是很简单呢:).

 

Compare

通知中心与KVO的区别:

1. 发送机制的区别

通知中心自身就是中介者,两个对象之间的通信通过中介者这个桥梁来发送信息.发送方不需要注册任何的信息,所有的配置都由注册方控制.

KVO是两个对象之间直接进行通信,发送通知信息的一方(对象)的注册键值发生变化的时候,会发送信息给被通知方.发送方主动添加被发送方注册信息,被发送方还需要实现一个方法,两方之间都需要进行些配置,使用稍有不当就会导致崩溃.

通知中心 3者间的关系

KVO      2者间的关系

 

2. 使用的细节

KVO属于被动发送消息,发送消息方的值改变了(一般都是被动改变的),才会发送信息给被发送方,通知中心属于主动发送消息.

通知中心 主动

KVO      被动

 

3. 使用难易程度

通知中心简单暴力直白,KVO用着恶心,但恶心不代表不要用哦.

通知中心 简单

KVO      复杂

 

 

posted @ 2014-05-07 09:51  YouXianMing  阅读(467)  评论(0编辑  收藏  举报