#pragma mark - 判断分组数,并且按上传时间和检查时间降序排列
-(void)analyseHDCData{
//1.数组内部元素排序
NSArray *sortDesc = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"createTime" ascending:NO]];
NSArray *sortedArr = [hdcDatasArray sortedArrayUsingDescriptors:sortDesc];
//2.对数组进行分组,按createTime,创建组数组,组数组中的每一个元素是一个数组
NSMutableArray *groupArray = [NSMutableArray array];
NSMutableArray *currentArray = [NSMutableArray array];
//因为肯定有一个元素返回,先添加一个
[currentArray addObject:sortedArr[0]];
[groupArray addObject:currentArray];
//如果不止一个,才要动态添加
if(sortedArr.count >1){
for (int i =1; i < sortedArr.count; i++) {
NSMutableArray *preModelArr = [groupArray objectAtIndex:groupArray.count-1];
// 先取出组数组中,上一个数组的第一个元素
HdcDataDto *hdcDto=[preModelArr objectAtIndex:0];
//取出当前元素,根据createTime比较,如果相同则添加到同一个组中;如果不相同,说明不是同一个组的
HdcDataDto *hdcDtoTmp=[sortedArr objectAtIndex:i];
if ([self compareCreateTime:hdcDto.createTime secondTime:hdcDtoTmp.createTime]){
[currentArray addObject:hdcDtoTmp];
}else{
// 如果不相同,说明有新的一组,那么创建一个元素数组,并添加到组数组groupArr
currentArray = [NSMutableArray array];
[currentArray addObject:hdcDtoTmp];
[groupArray addObject:currentArray];
}
}
}
// 3、遍历对每一组进行排序
hdcDatasGroup=groupArray;
}
#pragma mark - 比较上传时间
-(BOOL)compareCreateTime:(NSString *)firstTime secondTime:(NSString *)secondTime{
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setLocale:[[NSLocalealloc]initWithLocaleIdentifier:@"zh_CN"]];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *time1 = [NSDate timeStampTransformToDate:firstTime];
NSString *timeStr1=[df stringFromDate:time1];
NSDate *time2 = [NSDate timeStampTransformToDate:secondTime];
NSString *timeStr2=[df stringFromDate:time2];
if ([timeStr1 isEqualToString:timeStr2]) {
returnYES;
}else{
returnNO;
}
}
实现效果如图所示: