iOS之KVC
KVC,即是指 Key Value Coding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVC是实现KVO的基础。
一个对象拥有某些属性。比如一个Person对象有一个name和一个address属性。则Person对象分别有一个value对应他的name和address的key。 key只是一个字符串,它对应的值可以是任意类型的对象。从最基础的层次上看,KVC 有两个方法:一个是设置key的值,另一个是获取key的值。如下面的例子:
1 | -(void)changePerson:(Person *)p name:(NSString *)newName |
1 | -(void)getMarriage:(Person *)p |
key与keyPath要区分开来,key可以从一个对象中获取值,而keyPath可以将多个 key 用点号 “.” 分割连接起来,比如:
1 | [p valueForKeyPath:@"spouse.name"]; |
相当于:
1 | [[p valueForKey:@"spouse"] valueForKey:@"name"]; |