<h3>KVC:</h3>
key value coding : 間接通過字符串類型的key取出對(duì)應(yīng)的屬性值
</div>
<h3>KVC的價(jià)值:</h3>
1.可以訪問私有成員變量的值
2.可以間接修改私有成員變量的值(替換系統(tǒng)自帶的導(dǎo)航欄、tabbar)
keyPath包含了key的功能
key:只能訪問當(dāng)前對(duì)象的屬性
keyPath:能利用'.'運(yùn)算符一層一層往內(nèi)部訪問屬性
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"]); // 計(jì)算數(shù)組的長度,這里 books 是個(gè)數(shù)組.
NSArray *names = [p valueForKeyPath:@"books.name"]; // 把一個(gè)數(shù)組中保存的對(duì)象的某個(gè)屬性, 保存到另外一個(gè)數(shù)組中.
double sumPrice = [[p valueForKeyPath:@"books.@sum.price"] doubleValue]; // 計(jì)算所有的書的價(jià)格的總和. 使用 @sum.
<code>代碼片段</code>