美文网首页
关于KVO的简单记录

关于KVO的简单记录

作者: 菜鸟小邪神 | 来源:发表于2021-04-05 15:01 被阅读0次

很多人提到KVO的时候,就知道他是用来监听的。然后实现原理就是系统在后台默认创建子类。具体问道,创建子类的时候如何监听变化的 ,很多人就有点卡壳的,包括我自己也有过这个经历,所以我把这个原理简单的写下啦,给自己一个提醒

核心原理:

主要原理是在创建其子类的时候,把监听的对象的指针通过runtime指向了子类对象,当监听完成之后,又偷偷的把指针指向回来,说到底就是改变了指针的指向。

过程:

创建一个子类,并且父类的isa指向创建的子类,当监听的对象发生改变的时候,调用willchnageValue方法,然后再调用父类的setter ,最后调用 其didchangeValue方法。最后返回父类。单纯的调用willchnageValue与didchangeValue也是能触发监听的回调方法,但是没有改变值。因为此时没有实现其setter方法。

触发条件:

监听的对象或则属性具有setter属性并且执行setter方法,否则无法出KVO监听。

实际应用

实际在使用的时候,没有面试的时候问的那么复杂,需要主要的就是销毁监听。使用的地方挺多的,播放状态,网页加载进度等。

整体去看OC的特点,所有的东西都离不开指针,runtime的动态的原理其实就是对指针的操作。

最讨厌就是那些问底层的东西,自己百度来的题目,去问别人会不会,别人回答不上来,感觉自己特牛逼,我感觉这些东西其实就是自己学习的收获,应该用一个分享的态度去面试,如果你会的别人不会,告诉他,如果你不会的别人会,请教他,没什么大不了,面试的是态度,能力可以培养,放低姿态去交流,

这纯属自己的理解,如有错误,欢迎指正,因为我也需要学习。

相关文章

  • 关于KVO的简单记录

    很多人提到KVO的时候,就知道他是用来监听的。然后实现原理就是系统在后台默认创建子类。具体问道,创建子类的时候如何...

  • RxSwift:KVO监听对象属性

    在观察某个属性是否变化的时候,采用 KVO 的方式更为简单直接一些。 关于 Swift 的 KVO 使用方法,可以...

  • KVO 解析

    KVO解析(一) —— 基本了解KVO解析(二) —— 一个简单的KVO实现KVO解析(三) —— KVO合规性K...

  • iOS-KVO

    一.kvo使用 kvo可以监听一个对象属性的变化,下面为简单使用. 二.使用runtime分析kvo 我写了个简单...

  • 关于KVO的那些事 之 KVO安全用法封装

    关于KVO的那些事 之 KVO安全用法封装 KVO (Key Value Observering) 是iOS用于监...

  • OC的KVO学习记录(2)

    仿写KVO的实现KVO原理参考可前一篇OC的KVO学习记录代码github地址:Sameny仿写KVO 注:关键代...

  • 小码哥底层原理笔记:KVO的本质

    使用KVO主要是监听属性的变化。简单的KVO如下: KVO的本质 当我们给person1增加KVO后修改age的值...

  • 修改Textfield 占位颜色字体

    KVO 简单方便

  • iOS KVO、KVC的使用和探究

    一、KVO KVO 的作用: kvo 就是监听某个对象的属性,在该属性的值发生变化时,通知观察者。 KVO 的简单...

  • iOS探索KVO实现原理,重写KVO

    写响应式编程博客时,提到了KVO,今天我们探索一下KVO的实现原理及如何自己实现KVO功能 首先简单的KVO实现 ...

网友评论

      本文标题:关于KVO的简单记录

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