iOS底层原理之KVO分析(下)

咱们在上文iOS底层原理之KVO分析(上)中分析了KVO原理,本文主要是根据KVO原理自定义KVO的实现。git

定义管理KVO信息的类

定义管理KVO信息的类,主要包括ObserverkeyPathNSKeyValueObservingOptions以及监听属性变化的回调block,例如本文以SafeKVOInfoManager类为管理类,代码以下github

  • .h代码
  • .m代码

KVO处理类重点、难点

为了使全部继承于NSObject类均可以使用咱们自定义的KVOKVO处理类处理成NSObject的分类。本文以NSObject+SafeKVO分类做为KVO处理类`。markdown

NSObject+SafeKVO分类声明函数

safeAddObserver:函数分析

咱们给任意对象添加属性KVO监听,都须要调用safeAddObserver:函数函数

judgeSetterMethodFromeKeyPath函数分析

setterForGetter函数

一样也有从setter方法获取getter方法的getterForSetter

派生类函数creatSafeKVONotifingObservingKVOWithKeyPath分析

safe_class函数分析

safe_setter函数分析

safe_dealloc分析

safe_dealloc运行后结果分析

safeRemoveObserver函数分析

safeRemoveObserver函数能够不一样调用 oop

git项目下载地址

相关文章
相关标签/搜索