KVO使用

51 篇文章 0 订阅
//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<NSString *,id> *)change context:(void *)context {

    if([keyPath isEqualToString:@"accountBalance"]) {
        NSLog(@"%@ %@",[change valueForKey:NSKeyValueChangeNewKey],[change valueForKey:NSKeyValueChangeOldKey]);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值