<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>