7.iOS Notification

1. 通知中心認識post

    通知中心其實是在程序內部提供了消息廣播的一種機制。通知中心不能在進程間進行通訊,它只能進行程序內部通訊,不能跨應用程序進程通訊。通知中心,當通知中心接受到消息後會根據設置,根據內部的一個消息轉發表,將消息轉發給訂閱者。通知中心是基於觀察者模式的,它容許註冊、刪除觀察者。通知中心與代理模式相似,均可以實現多個對象間通訊,通知中心能夠將一個通知發送給多個監聽者,而代理模式每一個對象只能添加一個代理。但不管是那種模式,都是一種低耦合的設計,實現對象間的通訊。spa

 

2. 通知中心的使用設計

第一步:註冊通知中心(就是誰去接受廣播)代理

// 參數1 誰去就收廣播的消息server

// 參數2 接收到廣播後要執行的操做對象

// 參數3 接受哪一個廣播(也是就廣播的標識)進程

[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector (runSel:) name:@"MCJ" object:nil];rem

 

第二步:發送廣播 這個方法通常在其餘對像有什麼變數時 在其餘對象裏寫it

// 參數1 給廣播添加標識(在接受廣播的地方,能夠經過這個值區分不一樣的廣播)io

// 參數 2 須要傳遞的參數 沒有的話能夠傳nil

[NSNotificationCenter defaultCenter] postNotificationName:@" MCJ" object:array];

 

第三步: 實現接收到廣播後要執行的方法,若是有參數須要加上(NSNotification *)sender   

sender.object 就是咱們傳過來的參數

- (void)runSel: (NSNotification *)sender {

    NSArray *array =
sender.object;
 _nameLable.text = array[0];

_passwordLabel.text =
array[1]; 
    self.view.backgroundColor
= [UIColor redColor];
}

 

第四步:移除通知(有兩種方式)

- (void)dealloc {

// 移除指定的通知中⼼心

    [[NSNotificationCenter
defaultCenter]
removeObserver:self
name:@"MCJ" object:nil];

// 移除全部的通知中⼼心

    [[NSNotificationCenter
defaultCenter]
removeObserver:self];
}
相關文章
相關標籤/搜索