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

推荐阅读更多精彩内容