面试点

利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指针指向这个全新的子类
当修改instance对象的属性时,会调用Foundation的_NSSetxxxxValueAndNotify函数

willChangeValueForKey:
父类原来的setter
didChangeValueForKey:
内部会触发监听器(Oberser)的监听方法(observeValueForKeyPath:ofObject:change:context:);

如何手动出发KV0
通过手动调用willChangeValueForKey和didChangeValueForKey