书读百变,其义自见!
将KVO形式以代码实现呈现,通俗易懂,更容易掌握 :GitHub
一、KVO-基本使用方法
//注册 - (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context; //监听方法 - (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary<NSKeyValueChangeKey, id> *)change context:(nullable void *)context; //移除 - (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(nullable void *)context API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0)); - (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath; //监听模式(手动,自动),默认是自动Yes +(BOOL)automaticallyNotifiesObserversForKey:(NSString *)key; //属性的依赖,返回监听属性类的集合 +(NSSet<NSString *> *)keyPathsForValuesAffectingValueForKey:(NSString *)key;