KVO的概念
Observing、是苹果提供的一套事件通知机制。
允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。
简述KVO的基本使用
- 手动注册
- 观察者实现
- 移除观察者
自动调用
- 点语法,set语法或者KVC方法
手动调用
- 重写某个方法
- 实现set方法
//返回NO 手动调用KVO或者自己实现
+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key {
return NO;
}
- (void)setName:(NSString *)name {
if (name != _name) {
[self willChangeValueForKey:@"name"];
_name = name;
[self didChangeValueForKey:@"name"];
}
}
KVO的原理
生成原类的子类,重写
class
dealloc
setter
重写set方法时,做了什么
问题
- 那种方式不会触发KVO
网友评论