IOS 之 KVC & KVO

KVC 全称(key value coding ) 键值编码。是间接的访问对象属性的一种方式

1.1 赋值

     Person * person = [[Person alloc] init];
    //person.name = @"dodo";     通过setter方法为对象的属性赋值
    //KVC 方式  给对象的当前属性赋值(间接) 其实也是通过setter 方法给对象赋值的</span>
    [person setValue:@"odod" forKey:@"name"]; 

  //按照路径赋值  类包含Card类 可以赋值
    [person setValue:@"222" forKeyPath:@"card.id"];
1.2 取值

    [person valueForKey:@"属性变量"];
    [person valueForKeyPath:@"路径"];
2.1 可以利用KVC对工厂方法进行简洁     但是此方法的前提是

           所使用条件为属性名 返回的数据键值 一一对应

    NSArray * array = [NSArray array];
    for (NSDictionary * dic in array) {
       [person setValuesForKeysWithDictionary:dic];  
    }
KVO 全称(key value observing ) 键值观察。观察者模式实现的一种方式。

1.1使用步骤

1.注册观察者

 Person * p = [[Person alloc] init];
 [p addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

2.实现观察者对象的代理方法

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


}

3.移除观察者

   [person removeObserver:self forKeyPath:@"name"];

观察者模式性能不是很好,使用完毕之后,一定要及时的去释放掉观察者对象。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值