OC-KVO简介

一,概述

KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。

二,使用:

1.kVC即键值、编码 KVO即键值、观察者


    model的对象初始化self.modelA = [[Model alloc] init];

    //设置Model类里面的属性值  这部分就是KVC,键值编码。即对属性赋值
    [self.modelA setValue:@"xiaonan" forKey:@"name"];
    [self.modelA setValue:[NSNumber numberWithInt:20] forKey:@"num"];
    //设置观察者,键值观察是建立在键值编码的基础之上的。只要name属性赋值改变就会调用回调方法
    [self.modelA addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:nil];

//KVO观察者的回调方法

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

例如后来改变键值属性

-(IBAction)buttonAction:(id)sender
{
    [self.modelA setValue:@"you" forKey:@"name"];

}

就会触发观察者的回调方法

然后在使用完这个方法的时候,我们需要注销这个观察者:

[self.modelA removeObserver:self forKeyPath:@"name"];

转载于:https://www.cnblogs.com/AbeDay/p/5026922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值