一、普通数组排序:
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];