OC 数组分组

NSMutableSet *set=[NSMutableSet set];
NSMutableArray *array = [[NSMutableArray alloc] init];
//self.signInModel.rewards是一个数组
[self.signInModel.rewards enumerateObjectsUsingBlock:^(SignInRewardsModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    [set addObject:obj.source];//利用set不重复的特性,得到有多少组,根据数组中的source字段
}];
[set enumerateObjectsUsingBlock:^(id obj, BOOL *stop) {//遍历set数组
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"source = %@", obj];//创建谓词筛选器
    NSArray *group = [self.signInModel.rewards filteredArrayUsingPredicate:predicate];//用数组的过滤方法得到新的数组,在添加的最终的数组array中
    [array addObject:group];
 }];

//最后array会是一个二维数组
NSLog(@"%@", array);

你可能感兴趣的:(OC 数组分组)