KVC与KVO

2020-11-18  本文已影响0人  苏苏慢跑

1.KVO与KVC

KVO全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变

未添加KVO时实例对象的内存调用图

未使用KVO监听.png

使用了KVO的实例对象的内存调用图:

使用KVO监听.png

OC在运行的时候自动生成了一个NSKVONotifying_MJPerson类对象最为MJPerson类对象的子类对象,通过底层C _NSSetIntValueAndNotify方法重写了setAge:方法,进而实现了KVO的过程

核心代码如下:

KVC 全称Key-Value Coding,俗称“键值编码”,可以通过一个Key来访问某个属性。KVC常用方法。

赋值逻辑

赋值逻辑.png

取值逻辑

取值.png

这里赋值和取值都是有顺序的。

最后补充:KVC内部会实现willChangeValueForKey和didChangeValueForKey

上一篇 下一篇

猜你喜欢

热点阅读