zoukankan      html  css  js  c++  java
  • iOS设计模式之NSNotificationCenter 消息中心

    消息中心模式和KVO模式有点相似,差别在于。KVO  模式是意图在于监听摸一个相应的值的变化。而去出发一个方法相应的动作。而消息中心在于,广播。它就像一个广播基站,发送一条消息,在全部的加入监听的地方都可以收到此信息,并作出不同活着同样的动作,范围更广大。功能更强大


    //加入消息中心监听(加入观察者,也能说成加入监听)
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(myNotification:)name:@“test1" object:nil];

    它监听test1 整个值是否有人发送整个消息,监听者是self本类。假设监听到,就会触发myNotification 方法

         //通过消息中心发消息,
       
    //注意:消息中心,先做监听后发消息
       
    //object:发送的參数
        [[NSNotificationCenter defaultCenter]postNotificationName:@“test1" object:arra];

    //这种方法能够在本project的随意类中,这样就能和别的地方进行通信了


    //比方说,有五个页面,在前4个页面中都创建一个消息中心用来监听 一个 消息@“change”
    // 我们在第五个页面。通过消息中心,发送一个@“change” 消息,这样前四个页面就能够收到这个消息。然后做出对应的动作
    //一定要注意。创建消息中心监听  一定要在发送消息之前。  
    //灵活运用各种周期函数时解决问题的关键



    来个实例看看


    两个界面   界面1   界面2   界面1创建消息中心监听消息,
    界面2 床间消息中心,发送消息,并带有參数


    //在一个界面1内创建消息中心
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myNotification:) name:@“test1" object:nil];



    在界面1实现监听方法
    //监听到消息的时候运行该方法
    - (void)myNotification:(NSNotification *)n
    {
        //从接受到的消息n中,取出object,即消息中载入的參数
       
    //NSString *param = [n object];
       
    NSArray *arr = [n object];
       
    NSLog(@"%@",arr);
    }


    在界面2发送一个数组作为參数
     NSArray *arra = [NSArrayarrayWithObjects:@"a",@"d", nil];
       
    //通过消息中心发消息,
       
    //注意:消息中心,先做监听后发消息
       
    //object:发送的參数
        [[NSNotificationCenter defaultCenter] postNotificationName:@“test1" object:arra];

  • 相关阅读:
    腾讯微博
    城市左右选择添加按钮案例
    jQuery元素操作1
    动态创建表格
    五角星评论案例
    点击图片箭头回到顶部案例
    HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
    HDU1165: Eddy's research II(递推)
    HDU1158:Employment Planning(线性dp)
    HDU1081:To The Max(最大子矩阵,线性DP)
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7190373.html
Copyright © 2011-2022 走看看