KVO,KVC相关面试

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:

你可能感兴趣的:(KVO,KVC相关面试)