
KVO简介

截屏2019-12-15下午2.41.06.png

截屏2019-12-15下午2.41.55.png

截屏2019-12-15下午2.42.28.png

KVO面试题
KVO的本质是set方法,person ->_age = 2;这个是直接修改它的值,是不走set方法的,是不会触发KVO的,可以手动触发就可以了如下图所示:

手动触发KVO
KVC

accessInstanceVariablesDirectly返回NO调用...抛出异常...

KVC:setValue:ForKey:的内部实现原理。accessInstanceVariablesDirectly返回NO的话表示不允许访问成员变量,YES的话表示允许访问成员变量

KVCvalueForKey:取值的过程

KVC面试题:通过KVC修改属性会触发KVO,因为KVC赋值的过程内部会调用willChangeValueForKey和didChangeValueForKey:
网友评论