iOS中KVO的使用

//1.创建观察者对象;创建被观察者对象
    TRBank *bank = [TRBank new];
    //2.使用KVC方式给被观察者对象设置余额
    [bank setValue:@1000.5 forKey:@"accountBalance"];
    //3.被观察者调用addObserver方法,添加观察动作
    /* 参数一:指定观察对象的属性名字(属性路径)
       参数二:给定观察的枚举值(接收到通知的时候,获取新值/老值/初始值)
       描述:注册一个观察者对象Register
     NSKeyValueObservingOptionInitial:当给定余额初始值的时候,自动发送通知
     */
    [bank addObserver:bank forKeyPath:@"accountBalance" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionInitial) context:nil];
    //4.需要使用KVC指定变化的值
    [bank setValue:@2000 forKey:@"accountBalance"];
//
//    //移除观察者(在观察者对象和被观察者对象释放之前,移除观察者对象)
    [bank removeObserver:bank forKeyPath:@"accountBalance"];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    
    if([keyPath isEqualToString:@"accountBalance"]) {
        NSLog(@"%@ %@",[change valueForKey:NSKeyValueChangeNewKey],[change valueForKey:NSKeyValueChangeOldKey]);
    }

你可能感兴趣的:(iOS中KVO的使用)