<span style="font-size:18px;">KVO</span>
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
Movie *movie = [[Movie alloc] init];
/*
注册键值观察(不用的时候一定要注销掉)
参数1:观察者
参数2:观察那个属性
参数3:观察哪些变化
参数4:做传值用
参数3:枚举类型:new:打印修改后的值(在值修改后调用一次)
old:打印修改前的值(在值修改后调用一次)
initial:在值创建或修改就打印一次(当对象创建的时候,属性默认值为nil)
prior:值修改前和修改后各调用一次,并且用notificationIsPrior来表示修改前
*/
[movie addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionPrior context:NULL];
movie.name = @"崔成杰";
NSLog(@"/");
movie.name = @"王刚";
//注销观察
[movie removeObserver:self forKeyPath:@"name"];
}
//观察方法
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"/%s", __func__);
NSLog(@"//%@", keyPath);
NSLog(@"+++++++%@", change);
}
KVO
最新推荐文章于 2024-03-18 12:43:23 发布