Obj-C中的KVC

-setValue:forKey:和 -valueForKey  

[car setValue: @“x” forKey: @“name”];
[car setValue: [NSNumber numberWithFloat:205.4 ] forKey: @“number”]; //先进行包装
-setValue:forKey:首先查找以键key 或者 isKey命名的setter方法。若是不存在setter方法,就在类中查找名为_key 或 key 的实例变量,而后为它赋值。

NSString *name = [car valueForKey:@“name”];
NSLog(@“Name is %@”, name);
-valueForKey 首先查找以键key 或者 isKey命名的getter方法。 若是不存在getter方法,则在对象内部
查找名为_key 或 key 的实例变量。
-valueForKey 在Obj-C运行时使用元数据打开对象并进入其中查找须要的信息。经过使用KVC,能够获取不存在getter方法的对象值,无需经过对象指针直接访问实例变量。

键路径
[car setValue: [NSNumber numberWithInt: 155]
   forKeyPath: @“engine.horsepower”];
NSLog(@“horsepower is %@”, [car valueForKeyPath:@“engine.horsepower”]);

若是向NSArray请求一个键值,它实际上会查询数组中的每一个对像来查找这个键值,而后将查询结果打包到另外一个数组中返回。
相关文章
相关标签/搜索