通知

通知:

它可以一对多,一条消息可以发送给多个消息接受者

通知需要有一个通知中心: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];
}

  

 

posted @ 2015-12-08 14:53  若云  阅读(144)  评论(0编辑  收藏  举报