KVO-基本使用方法-底层原理探究-自定义KVO-对容器类的监听

书读百变,其义自见!

将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;

猜你喜欢

转载自www.cnblogs.com/henusyj-1314/p/10245363.html