iOS_KVO实现原理

KVO简而言之就是:

1、当一个object有观察者时,动态(利用runtime机制)创建这个object的类的子类

2、对于每个被观察的property,重写其set方法

3、在重写的set方法中调用- willChangeValueForKey:和- didChangeValueForKey:通知观察者

4、当一个property没有观察者时,删除重写的方法

5、当没有observer观察任何一个property时,删除动态创建的子类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则其观察...
    DeerRun阅读 10,152评论 11 33
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,856评论 0 9
  • 引用孙源的话 http://blog.sunnyxx.com/2014/03/09/objc_kvo_secret...
    charlotte2018阅读 446评论 0 1
  • 上半年有段时间做了一个项目,项目中聊天界面用到了音频播放,涉及到进度条,当时做android时候处理的不太好,由于...
    DaZenD阅读 3,052评论 0 26
  • 一直有很多读者给我发私信,咨询我如何能够创业成功。 我要告诉大家的是,想要创业成功绝非仅仅只需要一个好商机,好项目...
    time刚刚好阅读 2,345评论 8 121