KVO

- (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); }

 

posted @ 2016-01-03 02:13  mshong  阅读(125)  评论(0编辑  收藏  举报