ios KVO 底层实现原理

举例:
对于Person对象 对其添加KVO监听之后,该类实例的isa指向从 Person类指针 指向了运行时系统自建的NSKVONotifyin_Person类(其其实为Person类的子类)。
而在NSKVONotifyin_Person内部 当调用set方法时 其实调用了Foundation框架中的C语言函数_NSsetintValueAndNotify(对于set值为int来说,会根据类型不同调用不同方法),其内部实现的操作相当于,首先调用了willChangeValueForKey然后调用父类(person类)的set方法然后嗲偶调用didChangeValueForKey,而didChangeValueForKey会调用监听器的监听方法。来将监听者的值发送到observeValueForKeyPath方法中