通知
通知:
它可以一对多,一条消息可以发送给多个消息接受者
通知需要有一个通知中心:NSNotificationCenter,自定义通知的话需要给一个名字,然后监听。
优点:通知的发送者和接受者都不需要知道对方。可以指定接收通知的具体方法。通知名可以是任何字符串。
缺点:较键值观察(KVO)需要多点代码,在删掉前必须移除监听者
允许在对象间传递信息,因为通告中可以包含一个与事件相关的字典
- (void)viewDidLoad { [super viewDidLoad]; //创建通知发布者 Sender *sender = [[Sender alloc]init]; //创建通知监听者 Listen *listen = [[Listen alloc]init]; //创建通知中心 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; //监听通知 /* 1.谁进行监听 2.当前监听对象的那个方法进行监听 3.监听哪个通知 4.监听哪个对象发送的通知 */ [center addObserver:listen selector:@selector(myListen:) name:@"abc" object:nil]; //发布通知 [center postNotificationName:@"abc" object:sender userInfo:@{@"wyc":@"xxx"}]; //移除监听 [center removeObserver:listen]; }