這次開發(fā)中,有這么一個(gè)問題,后臺(tái)返回的數(shù)據(jù)并沒有做處理,需要移動(dòng)端對(duì)數(shù)組里面的對(duì)象按照ID來進(jìn)行分組,通俗的講就是要把ID一樣的對(duì)象放在一個(gè)數(shù)組里面.分離開來.
大致講講實(shí)現(xiàn)的思路: ? 數(shù)組里面很多的對(duì)象的ID都是一樣的,首先我們需要把數(shù)組里面進(jìn)行去重處理,也就是說把ID不一樣的元素取出一個(gè)裝到一個(gè)數(shù)組里面,作為后面區(qū)分開來的一句.然后把原數(shù)組和去重?cái)?shù)組進(jìn)行雙重遍歷.便可把ID相同的放到一個(gè)數(shù)組. 可直接拷貝下面代碼 ? 程序?qū)崿F(xiàn)如下:
//課程? 文件
//將ID一樣的分離出來
NSMutableArray *LessonArr=[NSMutableArray array];
[dataArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSDictionary *currentDict=obj;
NSString *LessonID=[currentDict objectForKey:@"LessonID"];//根據(jù)課程的ID進(jìn)行區(qū)分
[LessonArr addObject:LessonID];
}];
//使用asset把LessonArr的對(duì)象去重
NSSet *set = [NSSet setWithArray:LessonArr];
NSArray *userArray = [set allObjects];
NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO];//yes升序排列,no,降序排列
//按ID降序排列的數(shù)組
NSArray *myary = [userArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1, nil]];
//此時(shí)得到的myary就是按照ID ? 降序排列拍好的數(shù)組
NSMutableArray *? _titleArray=[NSMutableArray array];
//遍歷myary把_titleArray按照myary里的時(shí)間分成幾個(gè)組每個(gè)組都是空的數(shù)組
[myary enumerateObjectsUsingBlock:^(id? _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSMutableArray *arr=[NSMutableArray array];
[_titleArray addObject:arr];
}];
//遍歷_dataArray取其中每個(gè)數(shù)據(jù)的ID看看與myary里的那個(gè)ID匹配就把這個(gè)數(shù)據(jù)裝到_titleArray 對(duì)應(yīng)的組中
[dataArray enumerateObjectsUsingBlock:^(id? _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary *currentDict=obj;//取出對(duì)象
NSString *LessonID=[currentDict objectForKey:@"LessonID"];
for (NSString *str in myary)
{
if([str integerValue] ==[LessonID integerValue])//檢測(cè)ID是否是一樣的
{
NSMutableArray *arr=[_titleArray objectAtIndex:[myary indexOfObject:str]];
[arr addObject:currentDict];//是的話就添加到數(shù)組里面
}
}
}];
NSLog(@"當(dāng)前的數(shù)組是%@",_titleArray);
承接APP,小程序,公眾號(hào)開發(fā). 性價(jià)比高.+V信:17723566468 ?有單子也可找我一起做哦