iOS 根据数组中model的某个属性值进行分组

根据model中的时间进行分组,重新构造数据,方便多个section的tableview使用。

NSArray *list = @[model1,model2,mode3.....];
 NSMutableDictionary *res = [NSMutableDictionary new];
        for (WSModel *mm in list)
        {
            if (res[mm.date]){
                [res[mm.date] addObject:obj];
            }
            else{
                res[mm.date] = [NSMutableArray arrayWithObject:obj];
            }
        }
        NSMutableArray *data = [NSMutableArray new];
        for (NSString *key in res.allKeys) {
            [data addObject:@{@"date":key,@"list":res[key]}];
        }

输出结果
{
date = "3月30日 周六";
list = (
""
);
},
{
date = "8月6日 周二";
list = (
""
);
},
{
date = "8月1日 周四";
list = (
"",
""
);
},

补充说明,这样顺序可能会乱,需要把res.allkeys重新排下顺序

 NSArray *sortKeys =[res.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
                return [obj1 compare:obj2];
   }];
  for (NSString *key in sortKeys) {
            [data addObject:@{@"date":key,@"list":res[key]}];
   }

你可能感兴趣的:(iOS 根据数组中model的某个属性值进行分组)