IOS Notification 通知中樞

來源:互聯網
上載者:User

IOS:NSNotification
1.     通知中樞概述
通知中樞實際上是在程式內部提供了訊息廣播的一種機制。通知中樞不能在進程間進行通訊。實際上就是一個二傳手,把接收到的訊息,根據內部的一個訊息轉寄表,來將訊息轉寄給需要的對象。通知中樞是基於觀察者模式的,它允許註冊、刪除觀察者。
一個NSNotificationCenter可以有許多的通知訊息NSNotification,對於每一個NSNotification可以有很多的觀察者Observer來接收通知。
2.     通知中樞兩個重要的類
NSNotificationCenter:這是iOS中通知中樞的靈魂,由該類實現了觀察者模式,並給開發人員提供了諸如註冊、刪除觀察者的介面,我們可以通過一個單例來獲得它的執行個體(注,一個程式內部只有一個NSNotificationCenter執行個體對象)。
NSNotification:這是訊息攜帶的載體,通過它,可以把訊息內容傳遞給觀察者。其中:name對應訊息名稱標示。object一般是寄件者本身、dictionary則是傳遞的訊息內容。
3.     通知中樞如何使用
通過,我們可以看出,通知中樞的使用可以分為4個步驟。
這裡需要額外提一點的是:發送訊息不僅僅可以有使用者發起,也可以是系統發起。
當我們註冊了某個訊息的觀察者後,如果有了對應的訊息,則觀察者會收到相應的訊息,並展開處理。這裡需要注意的是,當使用完訊息之後,不想在接收到訊息,則需要把觀察者移除,否則會出現錯誤。

註冊通知:即要在什麼地方接受訊息
[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector (mytest:) name:@" postData " object:nil];
參數介紹:
addObserver:觀察者,即在什麼地方接收通知;
selector:收到通知後調用何種方法,即回呼函數;
name:通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
發送通知:調用觀察者處的方法。
[[NSNotificationCenter defaultCenter] postNotificationName:@" postData " object:searchFriendArray];
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.