版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CX_NO1/article/details/82429312
1、数组排序---升序
#pragma mark --- 数组排序--升序
-(void)sortArrASCE{
NSArray *array = @[@(2),@(15),@(1),@(22)];
//sort方法排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return [obj1 compare:obj2];
}];
NSLog(@"result=%@",result);
}
result=(
1,
2,
15,
22
)
2、数组排序---降序
#pragma mark --- 数组排序--降序
-(void)sortArrDESC{
NSArray *array = @[@(2),@(15),@(1),@(22)];
//sort方法排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return [obj2 compare:obj1];
}];
NSLog(@"result=%@",result);
}
result=(
22,
15,
2,
1
)
3、数组排序---乱序
#pragma mark --- 数组排序--乱序
-(void)sortArrBreak{
NSArray *array = @[@(2),@(15),@(1),@(22)];
//sort方法排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if (arc4random_uniform(2)==0) {
return [obj1 compare:obj2];//升序
} else {
return [obj2 compare:obj1];//降序
}
}];
NSLog(@"result=%@",result);
}
result=(
15,
2,
1,
22
)
PS:重要的事情说三遍 1 2 3!!!!!
如果数组里面的对象是字符串,上面写的方法在执行 “compare”的时候,只会比较第一位字符的大小,为了避免这种情况,我们需要在比较大小的时候,对compare进行限制。
return [obj1 compare:obj2 options:NSNumericSearch];
如需详细了解,请移步:iOS NSStringCompareOptions使用简介