【我們都愛Paul Hegarty】斯坦福IOS8公開課個人筆記32 NSNotification

我們之前在講解MVC模式的時候提到過,模型的改變是通過廣播的形式,然後控制器將調到響應的頻率接收到模型的消息,找出模型中的變化,這些變化其中之一就是NSNotification,它是MVC中處理電臺的途徑之一,實際是一種模型到控制器的通訊。還有一個類叫做NSNoticicationCenter,它有一個類方法叫做defaultCenter,它類似於共享消息中心,你只需要發送消息給它,然後指定你想聽的電臺,使用addObserverForName方法。


addObserverForName方法有幾個參數:電臺名、廣播的發送者,隊列後有一個閉包指定隊列,如果你設置爲nil,你將得到主隊列。面向對象的API通常會申請這個NSOperationQueue。如果有人在這個電臺上進行廣播,那麼底下的閉包將會執行,這個閉包只有一個參數:NSNotication,NSNotication裏面有幾個字段,但是真正有趣的是userInfo,userInfo是一個字典,是一個OC風格的字典,keys是NSObject、values是AnyObject的,任何一個它廣播的電臺都有不同的userInfo。下面來看一個示例:


在閉包中我們獲得了字體變化這個電臺,還有許多其他的鍵,每當字體變化時,這個閉包都將執行。讓需要廣播的對象調用postNotification。我們會在後面的Demo中展示。

發佈了143 篇原創文章 · 獲贊 191 · 訪問量 62萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章