/// 本地记录的顺序
NSArray *orderListArray = [NSUserDefaults standardUserDefaults].array;
NSMutableArray *arrayBeyoneOrderList = [NSMutableArray array];
// 该双重遍历是为了找出最新数据中添加的新的item,即上次保留的数据中没有的item
[listBO.childListArray enumerateObjectsUsingBlock:^(listContObjectVO *obj1, NSUInteger idx, BOOL * _Nonnull stop) {
__block BOOL hasBeenContainedByOrderList = NO;
[orderListArray enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isEqualToString:obj1.componentKey]) {
hasBeenContainedByOrderList = YES;
}
}];
if (!hasBeenContainedByOrderList) {
[arrayBeyoneOrderList addObject:obj1];
}
}];
NSMutableArray *tmpArray = [NSMutableArray array];
// 该双重遍历是为了将新请求到的列表按照记录的顺序进行调整
[orderListArray enumerateObjectsUsingBlock:^(NSString *obj1, NSUInteger idx, BOOL * _Nonnull stop) {
[listBO.childListArray enumerateObjectsUsingBlock:^(listContObjectVO *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj.componentKey isEqualToString:obj1]) {
[tmpArray addObject:obj];
}
}];
}];
// 将新添加的item放到最后面
[tmpArray addObjectsFromArray:arrayBeyoneOrderList];
listBO.childListArray = tmpArray.copy;
iOS 调整内容的顺序,并记录
于 2022-06-13 10:31:10 首次发布