iOS 数组排序

一、普通数组排序:

  NSArray *array = @[@(3),@(4),@(2),@(1)];

    //对数组进行排序

    NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

        return [obj1 compare:obj2]; //升序

    }];


二、对象数组排序:

@interface SumModel : NSObject

@property(nonatomic,assign) NSInteger  x;

@property(nonatomic,assign) NSInteger  y;

@property(nonatomic,assign) CGFloat    sum;

@end

@implementation SumModel

@end

数组:

NSMutableArray <SumModel*>* models = [NSMutableArray new];

// 对象数组排序(降序)

(1)方式一

[models sortUsingComparator:^NSComparisonResult(SumModel * obj1, SumModel * obj2) {

  if (obj1.sum > obj2.sum) {

     return (NSComparisonResult)NSOrderedAscending;

  }

  if (obj1.sum < obj2.sum) {

     return (NSComparisonResult)NSOrderedDescending;

  }

  return (NSComparisonResult)NSOrderedSame;

}];

(2)方式二:

NSComparator cmptr = ^(SumModel * obj1, SumModel * obj2){

        if (obj1.sum > obj2.sum) {

            return (NSComparisonResult)NSOrderedAscending;

        }

        

        if (obj1.sum < obj2.sum) {

            return (NSComparisonResult)NSOrderedDescending;

        }

        return (NSComparisonResult)NSOrderedSame;

    };


NSArray * resluts = [models sortedArrayUsingComparator:cmptr];










猜你喜欢

转载自blog.csdn.net/qq_37191821/article/details/80996205