版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338179
// KVO 作用:观察对象的值是否发生变化,可以展示变化前后的值
// 某个对象添加观察者
/*
参数1:self
参数2:观察被观察扎哪一个具体的值发生变化
参数3:取到被观察者变化前及变化后的值
*/
_dogModel addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew| NSKeyValueObservingOptionOld context:nil;
_catModel addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew |NSKeyValueObservingOptionOld context:nil;
// 实现KVO的相关方法
// 只要被观察者的值发生变化就执行
if ([object isKindOfClass:DogModel class]) {
NSString * old = change objectForKey:@"old";
NSString * new = change objectForKey:@"new";
// 展示
_label.text = NSString stringWithFormat:@"old:%@ new:%@", old, new;
}
else if ([object isKindOfClass:CatModel class])
{
NSString * old = change objectForKey:@"old";
NSString * new = change objectForKey:@"new";
_nextLabel.text = NSString stringWithFormat:@"old:%@ new:%@",old, new;
}
}
// 注销观察者