美文网首页
ios kvo底层原理

ios kvo底层原理

作者: iOS_YS_李 | 来源:发表于2022-03-29 02:48 被阅读0次

kvo底层

参考:https://www.jianshu.com/p/a0cf1b450371

利用了isa_swizzling技术,swizzling是一种OC级别的Hook技术,所以isa_swizzling就是一种isa Hook技术,在一个支持KVO的对象被添加了观察者,系统会为其生成一个子类,重写了set方法,并将该实例的Isa指针指向了新的这个子类(class),这样对被观察者进行属性赋值的时候调用的是重写后的set方法,而set方法内部添加了通知机制;

按理说你系统自动生成一个子类,子类重写父类的set方法,但是kvo在父类中,二者有吊毛联系啊,

所以这里才用到了runtime

当添加入一个观察者时,利用了runtime动态添加属性接口将该观察者加入该被观察实例对象上(实际上需要维护一个队列,用于记录所有观察该属性的观察者,这里为了简单),用于后续监听属性改变时给这个观察者发送消息;

然后,就是同样利用runtime改变该被观察者实例对象的isa指针(class),这样后续发送消息给被观察者均是往SUKVO_SubClass定义的方法里找(系统实现的子类为NSKVONotifying_原有类);

说白了就是runtime动态添加了属性并修改了父类的指针,所以系统才能实现子类的set

相关文章

  • IOS底层(三) KVO底层实现原理

    @[TOC](IOS底层(三) KVO底层实现原理 ) 一,KVO简述 KVO的全称 Key-Value Obse...

  • iOS - KVO

    [toc] 参考 KVO KVC 【 iOS--KVO的实现原理与具体应用 】 【 IOS-详解KVO底层实现 】...

  • iOS-底层原理21-KVO(下)

    iOS-底层原理21-KVO(下) 《iOS底层原理文章汇总》[https://www.jianshu.com/p...

  • 底层原理

    iOS底层原理总结 - Category的本质 KVO详解及底层实现青少年一定要读的KVO指南 iOS 底层解析w...

  • KVC

    KVC原理剖析 - CocoaChina_让移动开发更简单 iOS开发底层细究:KVC和KVO底层原理 | iOS...

  • Objective-C的本质(4)—— KVO本质

    参考:iOS底层原理总结 - 探寻KVO本质iOS-KVO本质 问题一:kvo如果找到对应的属性 KVO不存在查找...

  • iOS KVO 基础与底层原理

    iOS KVO 基础与底层原理 KVO基础 KVO是通过给对象object的属性property注册observe...

  • 关于KVO底层Runtime实现的那点事

    有很多公司iOS面试都会被问到KVO底层的实现。网上也有很多篇关于KVO的底层原理,但是都是用willChange...

  • 自定义KVO

    导语: 如果对KVO原理不是很熟悉的,可以参考下简书另一篇文章《ios KVO原理探究》,主要是通过模拟KVO底层...

  • Today面试

    Runloop 底层原理Kvo 底层原理ARC 底层原理 如何实现GCD 底层原理Block 底层原理Aut...

网友评论

      本文标题:ios kvo底层原理

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