KVO
KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变 原理 利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指向这个全新的子类 当修改instance对象的属性时,会调用Foundation的_NSSetXXXValueAndNotify函数 _NSSetXXXValueAndNotify的内部调用如下 调用willChangeValueForKey: 调用原来的setter实现 调用didChangeValueForKey;didChangeValueForKey:内部会调用observer的observeValueForKeyPath:ofObject:change:context:方法 相关问题 iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 答:如上 如何手动触发KVO? 当 +(BOOL)automaticallyNotifiesObserversForKey:(NSString )key 返回是 YES,那么注册的这个 Key 就会替换对应的 Setter ,从而在改变的时候调用 -(void)willChangeValueForKey:(NSString )key 与 -(void)didChangeValueForKey:(NSString *)key 发送通知给观察者