kvc和kvo

KVC(Key-Value-Coding)内部的实现:一个对象在调用setValue的时候,

(1)首先根据方法名找到运行方法的时候所需要的环境参数。

(2)他会从自己isa指针结合环境参数,找到具体的方法实现的接口。

(3)再直接查找得来的具体的方法实现。

KVO(Key-Value-Observing):当观察者为一个对象的属性进行了注册,被观察对象的isa指针被修改的时候,isa指针就会指向一个中间类,而不是真实的类。所以isa指针其实不需要指向实例对象真实的类。所以我们的程序最好不要依赖于isa指针。在调用类的方法的时候,最好要明确对象实例的类名。

kvo实现监听流程。

KVO 可以监听单个属性的变化,也可以监听集合对象的变化。集合对象需要通过KVC 的 mutableArrayValueForKey:等方法获得代理对象(例如数组会创建:创建一个NSKeyValueSlowMutableArray中间对象),当代理对象的内部对象发生改变时,会回调 KVO 监听的方法。集合对象包含 NSArray 和 NSSet

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

推荐阅读更多精彩内容

  • iPhone程序开发 KVO/KVC实现机理分析是本文要介绍的内容,不多说,直接进入话题。我们来看详细内容。 Ob...
    零纪年阅读 21,248评论 5 26
  • 人生就是一场战斗 KVC(Key-Value Coding)键值编码 1.1如何调用私有变量?如何修改系统的只读属...
    为之_iOS阅读 3,258评论 1 24
  • 什么是KVC key value coding:是一种使用字符串标识符间接访问对象属性的机制; 如何使用KVC K...
    华子小筑阅读 239评论 0 0
  • 问题: 什么是键值编码KVC,键路径是什么? 什么是键值观察KVO? 键值编码KVC: 键值编码是一种在NSKey...
    爱笑的猫mi阅读 809评论 1 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,615评论 28 53