KVC和KVO的区别

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就会自动向所有实施监听的对象发送一个通知

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容