iOS_KVC

<h3>KVC:</h3>
key value coding : 间接通过字符串类型的key取出对应的属性值
</div>
<h3>KVC的价值:</h3>
1.可以访问私有成员变量的值
2.可以间接修改私有成员变量的值(替换系统自带的导航栏、tabbar)

keyPath包含了key的功能
key:只能访问当前对象的属性
keyPath:能利用'.'运算符一层一层往内部访问属性
    HMPerson *p = [[HMPerson alloc] init];

    HMBook *b1 = [[HMBook alloc] init];
    b1.name = @"kuihua";
    b1.price = 100.6;
    
    HMBook *b2 = [[HMBook alloc] init];
    b2.name = @"pixie";
    b2.price = 5.6;
    
    HMBook *b3 = [[HMBook alloc] init];
    b3.name = @"jiuyin";
    b3.price = 50.6;
    
    p.books = @[b1, b2, b3];
NSLog(@"%@", [p valueForKeyPath:@"books.@count"]); // 计算数组的长度,这里 books 是个数组.
NSArray *names = [p valueForKeyPath:@"books.name"];  // 把一个数组中保存的对象的某个属性, 保存到另外一个数组中.
double sumPrice = [[p valueForKeyPath:@"books.@sum.price"] doubleValue];  // 计算所有的书的价格的总和. 使用 @sum.

<code>代码片段</code>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: 本文基本不讲KVC/KVO的用法,只结合网上的资料说说对这种技术的理解。 由于KVO内容较少,而且是以KV...
    土b兰博王阅读 3,092评论 0 33
  • KCV 其实由于ObjC的语言特性,你根部不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Value...
    TYM阅读 1,065评论 0 4
  • KVC KVC是key Value Coding的缩写,主要方法有setValue:forKey和valueFor...
    小暖风阅读 383评论 0 1
  • 如果你是做iOS开发,那么你肯定是知道KVC了. ObjC的语言特性,你根本不必进行任何操作就可以进行属性的动态读...
    Senior丶阅读 1,933评论 0 19
  • KVC、KVO概述 KVC(NSKeyValueCoding) "键-值 编码"是一种间接访问对象的属性的机制...
    Joker_King阅读 1,031评论 1 4