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: