如何按数值排序数组?

时间:2016-08-04 02:39:30

标签: ios objective-c arrays sorting

我有一个NSMutableArray的iOS应用,会在UITableView中显示。该数组通常只包含数字(因为这是主要目的),但有时会包含一些字母。在显示之前发生在阵列上的最后一件事是使用[customerArray sortUsingSelector:@selector(compare:)];按字母顺序排序。但是,当我运行应用程序时,如果数组包含具有不同数字位数的数字(例如:0 - 20),那么10s会在1之后而不是9之后排序。有没有办法让数字正确排序数值?如有必要,我很乐意提供更多信息,代码或截图。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这种对我的代码的思考可以帮助你:

NSArray *arr = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20"];

NSMutableArray *arrM = [NSMutableArray arrayWithArray:arr];

NSArray *arr2= [arrM sortedArrayUsingComparator:^(id objA,id objB){
        return (NSInteger)([objA integerValue] > [objB integerValue]);//ascending
        //return (NSInteger)([objA integerValue] < [objB integerValue]);//descending
    }];
 NSLog(@"%@",arr2);

希望对你有所帮助! hahahahahha ~~~