// 创建通知的两种形式
//[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#>]
//[NSNotification notificationWithName:<#(nonnull NSString *)#> object:<#(nullable id)#> userInfo:<#(nullable NSDictionary *)#>]



// 发送通知的三种形式

/**
* 1. 直接将一个创建好的通知发送出去
*
* Notification 创建好的通知
*
*/

//[NSNotificationCenter defaultCenter] postNotification:(nonnull NSNotification *)


/**
* 2. 在发送通知的方法里,创建通知
*
* NotificationName : 通知名
* object : 通知发布者
*
*/

//[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSString *) object:(nullable id)


/**
* 3. 在发送通知的方法里,创建通知
*
* NotificationName : 通知名
* object : 通知发布者
* userInfo : 额外信息
*
*/

//[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSString *) object:(nullable id) userInfo:(nullable NSDictionary *)


// 接收通知的形式
//[NSNotificationCenter defaultCenter] addObserver:(nonnull id) selector:(nonnull SEL) name:(nullable NSString *) object:(nullable id)

//[NSNotificationCenter defaultCenter] addObserverForName:(nullable NSString *) object:(nullable id) queue:(nullable NSOperationQueue *) usingBlock:^(NSNotification * _Nonnull note) {}

//[NSNotificationCenter defaultCenter] addObserver:(nonnull NSObject *) forKeyPath:(nonnull NSString *) options:(NSKeyValueObservingOptions) context:(nullable void *)