1.NSNotification
将包含的信息(桥接到
Notification)广播给注册的观察者
1.1 声明
1  | class NSNotification : NSObject  | 
1.2 讨论
- 一个通知包含name、object、optional dictionary,通过
NotificationCenter或者DiSwifttributedNotificationCenter广播。 - name是通知的身份标签。
 - object是通知的发出者要发送给观察者的任意对象(通常来说,该object就是消息的发出者)
 - dictionary存储其他相关的对象
 - NSNotification是不变的
 - 不要直接创建自己的通知,要通过调用
NotificationCenter的post(name:object:)方法,和post(name:object:userInfo:)方法. 
⚠️:Swift提供了
Notification桥接到NSNotification。
1.3 对象比较
- 使用本地指针的相等性来比较通知中的所有对象。Distributed notifications使用字符串作为他们的对象,他们之间使用
Equal(_:)来比较相等性 
1.4 创建子类
- 可以子类化NSNotification来包含除name、object、dictionary之外的信息,但是这些信息要在通知者和观察者之间达成一致。
 - NotificationCenter是个没有实例变量的类簇,因此你就要子类化NSNotification并重写原始的方法
name,object, 和userInfo。 - 可以选择任意指定构造器,但是要保证那个构造器没有调用父类的
init()方法。NSNotification的init方法会抛出异常。