NSNotifacationCenter(通知)
通信的特點是:為單例模式恋拷,可以實現(xiàn)一對多通信国旷。
通知是觀察者(observer)模式的一種,結(jié)構(gòu)為:發(fā)布者->通知中心->接受者抖拴。
-
通知的通信過程
發(fā)布通知方法
Name: 該通知的名字
object: 通知的發(fā)送者 一般為self
userInfo:傳遞的附加信息(字典類型的)
[[NSNotificationCenter defaultCenter] postNotificationName:(nonnull NSNotificationName) object:(nullable id) userInfo:(nullable NSDictionary *)];
注冊通知方法
observer: 觀察者(一般在控制器中是self)
aSelector:監(jiān)聽到通知后觸發(fā)的那個方法
name: 通知的名字
bject: 監(jiān)聽哪個對象發(fā)出的通知,如果使用"nil"值搪柑,代表監(jiān)聽所有通知涎劈。
[[NSNotificationCenter defaultCenter] addObserver:(nonnull id) selector:(nonnull SEL) name:(nullable NSNotificationName) object:(nullable id)];
aSelector:監(jiān)聽到通知后觸發(fā)的那個方法 例如
- (void)receiveotification:(NSNotification *)notification {
NSLog(@"收到通知了");
NSDictionary *dic = notification.userInfo;
}
不要忘了在注冊觀察通知的控制器的dealloc方法中移除要觀察的通知。
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}