KVO的全称是Key-Value Observing, 俗称“键值监听”,可以用于监听某个对象属性值的改变
未使用KVO监听的对象
使用了KVO监听的对象,创建了子类,instance对象的isa指针指向新的子类
_NSSet*ValueAndNotify的内部实现
调用willChangeValueForKey:
调用原来的setter实现
调用didChangeValueForKey:
didChangeValueForKKey:内部会调用observer的observerValueForKeyPath:ofObject:change:context方法