KVO的底层原理

Key-Value Observing 键值对观察者模式

基于OC强大的Runtime机制和isa-swizzle机制、考虑到OC的对象存储方式和类存储方式

OC在底层实现了KVO的这种观察者模式,开发者可以在不修改某个类A的情况下,很轻易的实现对A的某个对象中任意属性的监视

KVO原理

运行过程中,当观察者对象对被监听者进行监听的时候,系统自动为被监听类创建一个临时的

派生类,并在派生类中重写setter方法,增加willChangeValueForKey和didChangeValueForKey

在will中保存历史值,在did中保存修改后的值,并通知所有的观察者对象


动态性导致宏定义不会影响到编译后的包大小,没有import的文件也会被

你可能感兴趣的:(KVO的底层原理)