美文网首页
使用KVO对NSArray数据进行快速计算。

使用KVO对NSArray数据进行快速计算。

作者: anjohnlv | 来源:发表于2017-08-25 14:50 被阅读47次

今天涉猎到NSArray一个以前自己没玩过的玩法,在这里稍作记录:

数组计算 keyPath
数组求和 @"@sum"
数组求平均值 @"@avg"
数组求最大值 @"@max"
数组求最小值 @"@min"
数组求个数 @"@count"

只能对基本数据类型进行计算,如int(NSInteger),float(CGFloat)等。

由于我们的数组对象都是NSObject类型,所以在使用时需要指明需要计算的类型。如:

NSArray *numbers = @[@(1), @(2), @(4)];

我们要求和,可以使用

[numbers valueForKeyPath:@"@sum.intValue"] ;

如果是浮点数求和

[numbers valueForKeyPath:@"@sum.floatValue"] ;

返回值均为NSNumber类型。
这个方法还可以对Model数据进行快速计算。如:

@interface Person : NSObject

@property(nonatomic, strong)NSString *name;
@property(nonatomic)NSInteger age;
@property(nonatomic)CGFloat score;

@end
NSArray<Person *> *persons;

我们要统计年龄最小的人

[persons valueForKeyPath:@"@min.age"];

要统计平均姓名长度

[persons valueForKeyPath:@"@avg.name.length"];

要统计有多少人有分数

[persons valueForKeyPath:@"@count.score"];

需要注意的是,这里的count,与[persons count]并不相同。后者计算的是一共有多少人,而这里统计的是一共多少人有分数。

相关文章

  • 使用KVO对NSArray数据进行快速计算。

    今天涉猎到NSArray一个以前自己没玩过的玩法,在这里稍作记录: 只能对基本数据类型进行计算,如int(NSIn...

  • Objective-C基础学习之NSArray 遍历

    1.NSArray的下标遍历 2.NSArray的快速遍历 3.NSArray 使用block进行遍历 4.NSA...

  • KVO使用及实现原理

    KVO使用及实现原理 KVO使用 对属性进行监听 对属性的属性进行监听 容器监听 触发(手动触发,kvc赋值) 添...

  • iOS琐碎知识点一

    1、使用动画切换window的根控制器 2、KVO高级用法 适用于NSArray,可以实现对数据元素的求和、最大值...

  • Excel中合并计算的使用方法

    如何利用合并计算对数据进行快速汇总求和?

  • Grand Central Dispatch

    使用GCD组加载多个网络请求 全部返回数据好调用 nofify进行数据的整理:方法1:NSArray * urls...

  • 8. 分组数据

    分组数据 使用分组可将数据分为多个逻辑组,对每个组进行聚集计算。 创建分组 分组使用SELECT 语句的GROUP...

  • 使用DEseq2计算FPKM后计算TPM

    使用DEseq2对RNA-seq数据进行分析,并计算FPKM和TPM。 该过程使用GenomicFeatures包...

  • 《Tableau软件学习》

    1、数据操作:可进行数据的隐藏、拆分等。 2、字段操作:可进行计算、设置格式、快速表计算等。 3、智能显示:可默认...

  • TextView 高度计算,动态变化

    1.原本使用下面方法计算,但是数据一直不太正确 2.后来查询资料后使用KVO获取TextView的contents...

网友评论

      本文标题:使用KVO对NSArray数据进行快速计算。

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