KVC:
1、全称是Key-value coding,翻译成键值编码。它提供了⼀一种使⽤用字符串⽽而不是访问器⽅方法去访问⼀一个对象属性的机制。
2、通过setValue: forKey: 的⽅方式对类的属性进⾏行赋值,key为属性的名称,value为具体的赋值。
3、通过- (id)valueForKey:(NSString *)key 访问对象的属性
A类中的某个属性值发⽣生变化,B类的对象做为A类对象的观察者,能够观察到此变化,并进⾏行后续的处理。
. 为调⽤用对象添加观察者
1.- (void)addObserver:(NSObject *)observer forKeyPath:(NSString
*)keyPath options:(NSKeyValueObservingOptions)options context:(void
*)context;
函数说明:
observer-观察者对象
keyPath-对象的
key,需要观察的属性
options-观察键值变化的⼏几种可选⽅方式
context-可以传NULL,如果⾮非NULL,则在观察者回调函数中会收到⼀一些数据
2. 观察者收到消息后的处理函数
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:
(id)object change:(NSDictionary *)change context:(void *)context;
函数说明:keyPath-对象的key,需要观察的属性object-发送通知的对象change-包含变化之前与变化之后属性值的字典context-被观察者对象传⼊入的context