KVO本质

作者: 丶月月鸟 | 来源:发表于2019-12-24 09:39 被阅读0次

    实现过程:
    对一个person类的实例对象A的一个属性添加kvo之后,会在runtime时生成一个person类的子类——NSKVONotifying_person类,并让对象A的isa指针指向该子类,在该子类中会有一个NSSet*valueAndNotify的方法(根据监听的属性的值的不同,会有不同的类型,int、double等),该方法会在调用A对象的set方法之前调用willChangeValueforkey方法,调用set方法之后调用didChangeValueforkey,在didchange方法中会触发kvo的代理

    如何手动触发:
    让对象调用
    willChangeValueforKey: 和
    didChangeValueforKey:方法即可手动触发监听,仅调用didChangeValueforKey:不会生效

    相关文章

      网友评论

          本文标题:KVO本质

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