KVO报错
使用:A对象监听B对象中某个属性值的修改,在B对象上添加监听
添加监听:
[B addObserver:A forKeyPath:@”B的属性” options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
监听回调:
-(void)observeValueForKeyPath:(NSString )keyPath ofObject:(id)object change:(NSDictionary )change context:(void *)context
{
if ([@”属性名称” isEqualToString:keyPath]) {
//自己的逻辑处理
// object为B对象
//值的变化情况可以通过change获取
}
}
报错解决:
在同一个对象上仿佛的添加监听就会报该错误,解决办就是在添加监听前保证对象没有被监听。
-(void)dealloc // ARC模式下
{
[sectionModel removeObserver:self forKeyPath:@”isDone”];
}