IOS學習之NSNotificationCenter訊息機制

來源:互聯網
上載者:User

標籤:

NSNotificationCenter是 Cococa訊息中心,統一管理單進程內不同線程的訊息通迅。

 添加觀察者接收通知:

//添加通知中樞觀察者[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(testMethod:) name:key object:self.person];

參數說明:

          addObserver: 觀察者,誰來接收通知;

        selector: 收到通知後調用的方法;

        name: 註冊所觀察通知的名字

         object: 訂閱該通知的對象,如果設定為nil 則接收所有通知

移除註冊觀察者:

     //移除某個指定的觀察者    [[NSNotificationCenter defaultCenter] removeObserver:self name:key object:self.person];         //移除所有觀察者    [[NSNotificationCenter defaultCenter] removeObserver:self];

發送通知:

    //發送帶參數的通知     NSDictionary *dic [email protected]{@"1":@1,@"2":@2};    [[NSNotificationCenter defaultCenter] postNotificationName:key object:self.person userInfo:dic];    //發送不帶參數的通知    [[NSNotificationCenter defaultCenter] postNotificationName:key object:self.person];        //發送通知對象    NSNotification *notification =[[NSNotification alloc]initWithName:key object:self.person userInfo:nil];    [[NSNotificationCenter defaultCenter]postNotification:notification];

參數說明:

postNotificationName:通知名字 ,和註冊通知觀察者名字一致

object:通知的寄件者

userInfo:通知傳遞的參數

 

接收通知:

//收到通知後調用方法-(void)testMethod:(NSNotification*)notification{    NSLog(@"notification----->%@",notification);//接收到的通知對象    id sender =[notification object];//擷取寄件者對象    NSLog(@"sender----->%@",sender );    NSDictionary *userInfo=[notification userInfo];//擷取傳遞參數    NSLog(@"userInfo----->%@",userInfo );    }

使用情境:

  1.不同頁面之間的通知傳值

 

          

IOS學習之NSNotificationCenter訊息機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.