詳細了解Cocoa中KVO機制是什么
詳細了解Cocoa中KVO機制是什么是本文要介紹的內(nèi)容,通過本文你可以方便有很好的去學(xué)習cocoa,不多說,我們來看詳細內(nèi)容。
iPhone開發(fā)最基本的就是掌握蘋果Cocoa這個面向?qū)ο箝_發(fā)的基本框架.本文主要簡單介紹Cocoa的KVO機制的概念及用法.
問:KVO是一個怎么樣的Cocoa機制?
答:Kvo(Key Value Coding)是cocoa中用來設(shè)值或取值的協(xié)議(NSKeyValueCoding),跟java的ejb有點類似。都是通過對變量和函數(shù)名進行規(guī)范達到方便設(shè)置類成員值的目的.它是Cocoa的一個重要機制,它有點類似于Notification,但是,它提供了觀察某一屬性變化的方法,而Notification需要一個發(fā)送notification的對象,這樣KVO就比Notification極大的簡化了代碼。這種觀察-被觀察模型適用于這樣的情況,比方說根據(jù)A(數(shù)據(jù)類)的某個屬性值變化,B(view類)中的某個屬性做出相應(yīng)變化。對于推崇MVC的cocoa而言,kvo應(yīng)用價值很高。
kvo的使用方法:
1、注冊: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context keyPath就是要觀察的屬性值,options給你觀察鍵值變化的選擇,而context方便傳輸你需要的數(shù)據(jù)(注意這是一個void型)
2、實現(xiàn)變化方法:
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context change里存儲了一些變化的數(shù)據(jù),比如變化前的數(shù)據(jù),變化后的數(shù)據(jù);如果注冊時context不為空,這里context就能接收到。是不是很簡單?kvo的邏輯非常清晰,實現(xiàn)步驟簡單。
小結(jié):詳細了解Cocoa中KVO機制是什么的內(nèi)容介紹完了,通過本文的學(xué)習是不是以及對KVO有了一定的基礎(chǔ)了解。好吧!最后希望本文對你有所幫助!