通知中心的底层实现

一、通知的实现原理

1、通知中心(NSNotificationCenter)是个单例
向通知中心注册观察者,也就是说,这个通知中心有个集合,这个集合存放着观察者。那么这个集合是什么样的数据类型 ? 可以这么思考: 发送通知需要name参数,添加观察者也有个name参数,这两个name一样的时候,当发送通知时候,观察者对象就能接受到信息,执行对应的操作。那么这个集合很容易想到就是NSDictionary!

key就是name,value就是NSArray(存放数据模型),里面存放观察者对象。如下图
20170727145827579.png

当调用postNotification时,在通知的字典,根据name找到value,这个value就是一数组,数组里面存放数据模型(observer、SEL)。即可执行对应的行为。

2、实现
https://blog.csdn.net/qq_18505715/article/details/76146575

你可能感兴趣的:(通知中心的底层实现)