【问题标题】:How to sort array by numerical values?如何按数值对数组进行排序?
【发布时间】:2016-08-04 02:39:30
【问题描述】:

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

【问题讨论】:

  • 请显示更多代码。
  • @TonyHan 有什么特别想看的代码吗?我不完全确定要添加什么。
  • @selector(compare:)?
  • @TonyHan @selector(compare:) 只是比较字符串并将它们按顺序排列。有解释here

标签: ios objective-c arrays sorting


【解决方案1】:

对我的代码的这种思考可能会对你有所帮助:

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);

希望对你有帮助!哈哈哈哈~~~

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    相关资源
    最近更新 更多