美文网首页iOS
iOS 根据数组中model的某个属性值进行分组

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

作者: 幻风0628 | 来源:发表于2019-10-24 16:30 被阅读0次

    根据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 = (
    "<WSModel: 0x283674fa0>"
    );
    },
    {
    date = "8月6日 周二";
    list = (
    "<WSModel: 0x2836446e0>"
    );
    },
    {
    date = "8月1日 周四";
    list = (
    "<WSModel: 0x2836448c0>",
    "<WSModel: 0x283644960>"
    );
    },

    补充说明,这样顺序可能会乱,需要把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的某个属性值进行分组

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