- (void)viewDidLoad {
[super viewDidLoad];
self.person = [[Person alloc] init];
self.person.name = @"why";
// 监听person对象name属性发生改变
// Observer : 观察者,谁要做事情谁就成为观察者
// KeyPath : 观察的属性
// options : 传入新值还是旧值
给对象添加监听的方法
[self.person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionOld context:nil];
self.person.name = @"lmj";
}
// 1.KeyPath: 属性 2.Object : 观察对象 3.change:存放着对应改变的值
实现监听的方法----监听
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
{
NSLog(@"keyPath:%@ object:%@ change:%@", keyPath, object, change);
NSLog(@"%@", self.person.name);
}