美文网首页ios-runtime
KVO的实现原理

KVO的实现原理

作者: 原来是泽镜啊 | 来源:发表于2019-08-12 16:09 被阅读0次
    KVO的实现原理
    图片
    KVO-键值观察机制,原理如下:
    • 1.当给A类添加KVO的时候,runtime动态的生成了一个子类NSKVONotifying_A,让A类的isa指针指向NSKVONotifying_A类,重写class方法,隐藏对象真实类信息

    • 2.重写监听属性的setter方法,在setter方法内部调用了Foundation 的 _NSSetObjectValueAndNotify 函数

    • 3._NSSetObjectValueAndNotify函数内部

    a) 首先会调用 willChangeValueForKey

    b) 然后给属性赋值

    c) 最后调用 didChangeValueForKey

    d) 最后调用 observer 的 observeValueForKeyPath 去告诉监听器属性值发生了改变 .

    • 4.重写了dealloc做一些 KVO 内存释放

    作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

    推荐阅读

    iOS开发——最新 BAT面试题合集(持续更新中)

    相关文章

      网友评论

        本文标题:KVO的实现原理

        本文链接:https://www.haomeiwen.com/subject/gwmujctx.html