天天看点

通知中心NSNotificationCenter的使用

通知中心nsnotificationcenter的使用

通知中心NSNotificationCenter的使用

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

source

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

notificationcenter.h + notificationcenter.m

通知中心NSNotificationCenter的使用
通知中心NSNotificationCenter的使用

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

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

通知中心NSNotificationCenter的使用
通知中心NSNotificationCenter的使用

usage

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

通知中心NSNotificationCenter的使用

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

compare

通知中心与kvo的区别:

1. 发送机制的区别

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

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

通知中心 3者间的关系

kvo      2者间的关系

2. 使用的细节

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

通知中心 主动

kvo      被动

3. 使用难易程度

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

通知中心 简单

kvo      复杂

继续阅读