iOS 筛选通话记录
2017-05-11 本文已影响2093人
我唔知啊
目的:每个号码只取一条通话记录
数据结构如下:
![](https://img.haomeiwen.com/i2202264/2d39e10e87bb188e.png)
其中calledNO是通话号码。
筛选代码来了:
// 最终数据
NSMutableArray *finalArr = [NSMutableArray array];
// 原数据
NSMutableArray *models = [NSMutableArray array];
for (NSArray *arr in self.datas) {
for (JCCallModel *model in arr) {
[models addObject:model];
}
}
// 取出所有通话号码
NSMutableArray *phoneMuArr = [NSMutableArray array];
for (JCCallModel *model in models) {
[phoneMuArr addObject:model.calledNO];
}
// 创建排序集合,重点:使用NSSet可以得到不重复的元素
NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:phoneMuArr];
// 拿到没有重复的通话号码
NSArray *phones = [orderSet.set allObjects];
// 从原数据获取通话记录Model,每个号码只拿一条
for (NSString *phone in phones) {
for (JCCallModel *model in models) {
if ([phone isEqualToString:model.calledNO]) {
[finalArr addObject:model];
break;
}
}
}
结果:
![](https://img.haomeiwen.com/i2202264/d51792facf374599.png)