IOS模型数组分组
具体思路是:
1,用set的不可重复性以模型的groupNo属性创建set集合
2,遍历set集合,用模型的groupNo属性创建谓词筛选器,然后筛选模型数组
3,筛选后的每一个数组不为空那么就创建新的唯一的字典@{groupNo:数组},然后添加到分组后的可变数组
#pragma mark ---获取数组分组
- (NSMutableArray *)getGroupArray:(NSArray *)items
{
NSMutableArray *resultArr = [NSMutableArray array];
NSMutableSet *groupNoSet = [NSMutableSet set];
[items enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
BreedMarkModel * model = (BreedMarkModel *)obj;
[groupNoSet addObject:model.groupNo];
}];
[groupNoSet enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSString *groupNo = (NSString *)obj;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"groupNo = %@", groupNo];//创建谓词筛选器
NSArray *group = [items filteredArrayUsingPredicate:predicate];
if (group.count != 0)
{
[resultArr addObject:@{groupNo: group}];
}
}];
return resultArr;
}