KVC和KVO的区别

2016-07-02  本文已影响39人  弹一首键盘协奏曲

KVC是一种访问一个对象属性的方法 即是指NSKeyValueCoding

访问一个对象属性我们可以 person.age  也可以通过kvc的方式  [person valueForKey:@"age"];  假如给出的字符串没有对象的属性 会访问valueForUndefineKey方法 默认实现是raise 一个异常 但你可以重写这个方法,  setValue的时候也是一样的道理,当然KVC只是这么简单它还有keypath方法

key 与 key pat 要区分开来,key 可以从一个对象中获取值,而 key path 可以将多个 key 用点号 “.” 分割连接起来,比如:

[p valueForKeyPath:@"spouse.name"];

相当于这样……

[[p valueForKey:@"spouse"] valueForKey:@"name"];

KVO 就是基于 KVC 实现的关键技术之一,它的实现原理就是,当对象的属性被修改时候,KVO就会自动向所有实施监听的对象发送一个通知

上一篇 下一篇

猜你喜欢

热点阅读