iOS KVC

作者: 72行代码 | 来源:发表于2019-05-10 15:47 被阅读1次

1. KVC简介

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

2. KVC键路径

  • 键路径的基本调用是-valueForKeyPath:-setValue:forKeyPath:方法
[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"];

附:我的博客地址

相关文章

网友评论

    本文标题:iOS KVC

    本文链接:https://www.haomeiwen.com/subject/pnskwftx.html