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 = (
"<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]}];
   }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容