iOS - 数组模型根据模型属性key排序

方法一:
    NSArray *sortArray = [arrayM sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
                SDHomeNewTaskModel *model1 = obj1;
                SDHomeNewTaskModel *model2 = obj2;
                if ([model1.distance floatValue] > [model2.distance floatValue]) {
                    return NSOrderedDescending;//降序
                }else if ([model1.distance floatValue] > [model2.distance floatValue]){
                    return NSOrderedAscending;//升序
                }else {
                    return NSOrderedSame;//相等
                }
            }];
            for (SDHomeNewTaskModel *model in sortArray) {
                NSLog(@"distance3:------> %@", model.distance);
            }
方法二:
                NSMutableArray *arr = [NSMutableArray array];
            for (int i =0; i < arrayM.count; i ++) {
                SDHomeNewTaskModel *model = arrayM[i];
                [arr addObject:model];
                NSLog(@"distance2:------> %@", model.distance);
            }
            //这里类似KVO的读取属性的方法,直接从字符串读取对象属性,注意不要写错ascending:指定一个集合是否按照升序(YES)还是降序(NO)
            NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"distance" ascending:YES];
            //这个数组保存的是排序好的对象
            NSArray *arr = arrayM;
            NSArray *tempArray = [arr sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
            // 输出排序结果
            for (SDHomeNewTaskModel *model in tempArray) {
                NSLog(@"distance3:------> %@", model.distance);
            }

猜你喜欢

转载自www.cnblogs.com/gongyuhonglou/p/10649998.html