iOS 中的kvo分为自动监听和手动触发两种方式,自动监听很简单,不在此分析,这里主要说一下手动触发的实现,面试容易问到
一、要点有几下几点:
1、重写监听属性的set、get方法
2、重写 + (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key
3、在set方法中在赋值的前后分别调用:willChangeValueForKey和didChangeValueForKey
4、实现willChangeValueForKey和didChangeValueForKey方法
二、这里主要说下+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key中的实现: