KVO的原理 云中追月 2024-05-30 141 阅读1分钟 实现原理 KVO是通过isa-swizzling(isa混写)实现的。 系统在运行时根据原类创建一个中间类NSNotifying_XXX,这个中间类是原类的子类(所以调用原类的方法时,能找到对应方法),并动态修改当前对象的isa指针指向中间类。 当修改对象属性时,会先调用willChangeVlaueForKey:方法,再对实例变量赋值,再调用didChangeValueForKey:方法。