偶試一下kvo

突然有個想法要寫一下kvo,雖然網上的資料一大把,但是個人感覺有些文章還是有些錯誤,趁着這段時間還有點時間就來寫一下kvo的是例,算是來個kvo的使用來次正名吧

想一想對象之間的通信有哪幾種?(根據我的所知,主要有單例模式,通知中心,代理模式以及block,用過代理模式和block的,應該都能知道,這兩種模式通訊之間的方式幾乎是一模一樣,ios4.0之後,block用的越來越多,4.0之前,幾乎用的是代理模式,當然通訊方式也還包括我現在正要講的kvo)

kvo主要用來做兩個對象之間的通信,kvo的全,它提供一種機制,當指定的對象的屬性被修改後,則對象就會接受到通知。簡單的說就是每次指定的被觀察的對象的屬性被修改後,KVO就會自動通知相應的觀察者了,這裏我提供的實例就是人的銀行賬號與人之間的一個通訊.

先來看看kvo的使用步驟

1.註冊通知對象,依靠下面這個方面

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context 這個方法的參數來解釋一下,observer是指誰來監聽這個對象,keyPath是指我們需要監聽的對象的某一個屬性,options是指監聽的對象是什麼,context是指一些私有的參數,比如比如上下文

2.回調函數

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

代碼難得貼,打個包去下載好了,下載鏈接如下

點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章