开发者联盟

iOS KVC

2019-05-10  本文已影响1人  72行代码

1. KVC简介

NSString *name = [car valueForKey:@"name"];
valueForKey:会首先查找以参数名命名(格式为-name或-isName)的getter方法。
如果没有这样的getter方法,它将会在对象内寻找名称格式为_name或name的实例变量。
另外KVC会自动装箱和开箱标量值。也就是说,当使用-setValue:forKey:,它自动将标量值(int、float和struct)放入NSNumber或NSValue中;
当时用-valueForKey:时,它自动将标量值从这些对象中取出。仅KVC具有这种自动装箱功能,常规方法调用和属性语法不具备该功能。

2. KVC键路径

[car setValue:[NSNumber numberWithInt:155] forKeyPath:@"engine.horsepower"];
NSLog(@"horsepower is %@", [car valueForKeyPath:@"engine.horsepower"]);

3. KVC快速运算

[garage valueForKeyPath:@"cars.@count"];
[garage valueForKeyPath:@"cars.@sum.mileage"];
[garage valueForKeyPath:@"cars.@avg.mileage"];
[garage valueForKeyPath:@"cars.@min.mileage"];
[garage valueForKeyPath:@"cars.@max.mileage"];

附:我的博客地址

上一篇 下一篇

猜你喜欢

热点阅读