iOS中有两种支持机制:Notification和KVO(Key-Value Observing)
KVO是iOS中的一個核心概念,簡單理解就是:關注Model某個數據(Key)的對象可以注冊為監聽器,一旦Model某個Key的Value發生變化,就會廣播給所有的監聽器(http://blog.chinabyte.com/a/1557371.html)
KVO:KVO是一個怎么樣的Cocoa機制?
答:Kvo(Key Value Coding)是cocoa中用來設值或取值的協議(NSKeyValueCoding),跟java的ejb有點類似。都是通過對變量和函數名進行規范達到方便設置類成員值的目的.它是Cocoa的一個重要機制,它有點類似于Notification,但是,它提供了觀察某一屬性變化的方法,而Notification需要一個發送notification的對象,這樣KVO就比Notification極大的簡化了代碼。這種觀察-被觀察模型適用于這樣的情況,比方說根據A(數據類)的某個屬性值變化,B(view類)中的某個屬性做出相應變化。對于推崇MVC的cocoa而言,kvo應用價值很高。
kvo的使用方法:
1、注冊: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context keyPath就是要觀察的屬性值,options給你觀察鍵值變化的選擇,而context方便傳輸你需要的數據(注意這是一個void型)
2、實現變化方法:
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context change里存儲了一些變化的數據,比如變化前的數據,變化后的數據;如果注冊時context不為空,這里context就能接收到。是不是很簡單?kvo的邏輯非常清晰,實現步驟簡單
轉載于:https://www.cnblogs.com/Rampage/archive/2012/02/10/2345530.html
總結
以上是生活随笔為你收集整理的iOS中有两种支持机制:Notification和KVO(Key-Value Observing)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF 第五章 行为 实现事务(操作行为
- 下一篇: 跌倒的收获