用KVO实现的监听

首先创建一个model类,定义一个name属性,一个age属性


//KVO:key value observer 观察者,观察属性值变化

    

    self.son = [[Person alloc]init];

    //KVC赋值

    [self.son setValue:@"张三" forKey:@"name"];

    self.son.age = @"23";

    //添加观察者

    //参数1.当前对象self为观察者

    //参数2.观察Person的哪个属性值变化

    //参数3.设置观察值的类型,是新值还是旧值

    //参数4.设置观察内容

    [self.son addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:@"观察Person属性name值变化"];

    self.label1.text = self.son.name;

    self.label2.text = self.son.age;

    [self.son addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionNew context:@"111"];

    

    [self.navigationController.navigationBar addObserver:self forKeyPath:@"barTintColor" options:NSKeyValueObservingOptionNew context:@"111"];

    

    

    

}

//接受响应消息

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

{

    NSLog(@"keyPath = %@ object = %@ chang = %@ context = %@",keyPath,object,change,context);

    if ([keyPath isEqual:@"name"]) {

        self.label1.text = [change objectForKey:@"new"];

    }

    if ([keyPath isEqual:@"age"]) {

        self.label2.text = [change objectForKey:@"new"];

    }

    

    

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值