KVC和KVO面试题

kvc

  • kvc是什么:键值编码

  • kvc的使用场景:

    • 1.字典转模型

    • 2.当我们想替换系统的属性时候,比如系统的tabbar是只读属性不可改变,我们可以自定一个 tabbar去替换tabbar

  • kvc是怎么实现的:

    • 1.首先通过方法名找到运行时需要的参数

    • 2.通过isa指针结合参数,找到方法名对应的接口

    • 3.再直接查找得来的具体的方法实现

kvo

  • kvo是什么:键值监听

  • kvo的使用场景 :当一个对象的属性发生改变的时候调用addobserverforkey:方法,实现属性被改变后的事件

  • kvo是怎么实现的:

    • 1.比如A类的属性第一次被观察的时候,系统会自动生成一个A类的中间类B类。

    • 2.在B类中重写A类的setter方法,在B类中通过重写setter方法实现通知机制

    • 3.B类会重写class方法,系统会把A类的isa指针指向B类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容