美文网首页iOS 底层面试
[iOS]三个问题全面理解KVO

[iOS]三个问题全面理解KVO

作者: 青火 | 来源:发表于2021-03-27 02:08 被阅读0次

问题1:KVO底层实现原理?

答:动态创建监听对象的派生子类,并使对象isa指向派生类,重写setter方法,当监听值发生变化前后,willChangeValueForKey ,didChangeValueForKey 会分别调用 ......(表层流程理解)

问题2:既然监听对象isa指向了派生类,那么调用 监听对象 的class 方法 返回的是什么?Object_getClass会返回什么?

答:kvo底层不仅仅实现了isa-swizzling, 且重写了class方法 返回本类,这点可看出对象ISA并不可靠。

object_getClass返回的是类对象的ISA指针,并不是监听对象的ISA指针,返回的名字是本类。

问题3:KVO使用有什么问题?

答:KVO还不支持block语法,需要单独重写父类方法,这样加上add和remove方法就会导致代码很分散。

参考文章:一网打尽KVO

相关文章

  • [iOS]三个问题全面理解KVO

    问题1:KVO底层实现原理? 答:动态创建监听对象的派生子类,并使对象isa指向派生类,重写setter方法,当监...

  • KVO&KVC浅谈

    在谈论KVO和KVC之前,先引出几个问题 问题一:iOS用什么方式实现KVO,你可以理解成KVO本质是什么? 1....

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

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

  • IOS KVO原理解析与应用

    IOS KVO原理解析与应用 一、KVO概述 KVO,即:Key-Value Observing,是Objecti...

  • [iOS]三个问题全面理解runtime

    问题1.分类方法跟本类同名,调用时,会调用谁,如果调用分类的话,那如何调用本类的同名方法? 参考文章:runtim...

  • iOS-KVO(二) 使用注意点

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(三) 窥探底层实现

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(四) 自定义KVO+Block

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(一) 基本操作

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • ios kvo理解

    KVO是key-value observing的缩写 KVO是Objective-C对观察者设计模式的实现 App...

网友评论

    本文标题:[iOS]三个问题全面理解KVO

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