KVC(key-value-coding,鍵值編碼)
框架
kvc是一種經過字符串去間接操做對象屬性的一種機制,例如,訪問一個對象的屬性person.age時。使用kvc的方式:[person valueforkey:@"age"];
函數
kvc爲OC語言動態運行時機制的一種體現,任何NSObject類型的對象都支持kvc。
編碼
KVO(key-value-observer)
spa
kvo就是在一個語言框架層面實現的觀察者模式,經過kvc的方式去改變屬性時,會主動通知觀察者,對符合kvc鍵值編碼的變量的觀察,主要對變量賦值操做的觀察
orm
[_model addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];server
//鍵值觀察者要實現的函數對象
//第一個參數 就是監聽的 對象屬性名字符串
//第二個參數 監聽的對象it
//第三個參數 改變的內容 若是設置過NSKeyValueObservingOptionNew 就能夠獲取對象屬性的新值io
//若是設置NSKeyValueObservingOptionOld 能夠獲取對象屬性的舊值
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
}