【iOS】KVC 和 KVO 的使用场景

Key Value Coding
Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接访问它,同样我们也可以用KVC来完成[Object valueForKey:@“foo”], 有同学就会问了, 这样做有什么好处呢?主要的好处就是来减少我们的代码量。
 
下面我们来看看几个例子,就明白了KVO的用法和好处了,假设这样个类叫做People,
 
 
 
  1. @interface People: NSObject 
  2.   
  3. @property (nonatomic, strong) NSString *name; 
  4. @property (nonatomic, strong) NSNumber *age; 
  5.   
  6. @end 
场景1,apple 官网的一个例子,当我们需要统计很多People的时候,每一行是一个人的实例,并且有2列属性,name, age, 这时候我们可以会这样做,
 
 
 
  1. - (id)tableView:(NSTableView *)tableview 
  2.       objectValueForTableColumn:(id)column row:(NSInteger)row { 
  3.   
  4.     People *people = [peoleArray objectAtIndex:row]; 
  5.     if ([[column identifier] isEqualToString:@"name"]) { 
  6.         return [people name]; 
  7.     } 
  8.     if ([[column identifier] isEqualToString:@"age"]) { 
  9.         return [people age]; 
  10.     } 
  11.    
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值