IOS NSNotificationCenter 通知中心

今天我們來了解一下 NSNotificationCenter 消息通知中心這個類
一個NSNotificationCenter對象在一個程序內,提供一個廣播消息的機制
一個NSNotificationCenter對象從本質上來說是一個通知調度表

每一個正在運行的程序都有一個默認的通知中心,所以你一般不用創建自己
的通知中心,並且一個NSNotificationCenter對象只能在單個工程中投遞消息
如果你想投遞或接受其他進程的通知,你可以用一個NSDistributedNotificationCenter實例

以下是這個類的方法
獲得通知中心
+ (id)defaultCenter  //返回當前進程默認的通知中心


管理通知監視者  Managing Notification Observers

- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block
//增加一個事件監視者,name監視事件名稱,obj 你將要添加通知的對象
//queue  操作隊列 
//這裏還要說的一點是 在你銷燬創建的監視者之前,一定要先調用removeObserver:或removeObserver:name:object:移除它

- (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender
//增加一個事件監控,notificationObserver 監控者 
//notificationSelector 當監控的事件發生是所調用的方法
//notificationName 消息名稱   notificationSender 接收到的通知所附帶的參數
//同上,在用這個方法創建的對象在銷燬前,一定要先移除它

- (void)removeObserver:(id)notificationObserver
//移除一個監視者所有要監視的事件
- (void)removeObserver:(id)notificationObserver name:(NSString *)notificationName object:(id)notificationSender
//移除指定監視者,指定的通知

發佈通知  Posting Notifications


- (void)postNotification:(NSNotification *)notification
//發佈一個指定的通知

- (void)postNotificationName:(NSString *)notificationName object:(id)notificationSender
//創建一個指定名稱的通知,併發布它

- (void)postNotificationName:(NSString *)notificationName object:(id)notificationSender userInfo:(NSDictionary *)userInfo
//同上,只是多了一個關於通知的信息,即最後一個參數字典中有通知的信息,也可以爲空

以上就是通知中心的整個內容。
我覺得通知中心最重要的就是一對多的關係,即在一個地方發送通知,可以有多處同時響應,
雖然通過委託也能傳遞消息,但是委託是一對一的關係,
這個通知中心,在做項目中會遇到,比較典型的應該就是更換主題的時候,發送一個通知,然後各個
需要更換的地方接收通知然後進行相應的更換,很方便。

好了,在這裏就把這個類的主要內容,還有自己的一點心得分享給大家 —— LC






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