首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS应用程序中的数组排序问题

iOS应用程序中的数组排序问题
EN

Stack Overflow用户
提问于 2013-04-16 06:23:42
回答 4查看 1K关注 0票数 1

我有一个数组,如:

"8461.86“、"8468.22”、"8468.22“、"8162.59”、"8164.50“、"7280.59”)

我试着按照以下步骤对这个数组进行排序:

代码语言:javascript
复制
sortedArray = [arr_distance sortedArrayUsingComparator:^(id firstObject, id secondObject) {
    return [((NSString *)firstObject) compare:((NSString *)secondObject) options:NSNumericSearch];
}];

但我得到了如下数组:

"7280.59“、"8162.59”、"8164.50“、"8461.86”、"8468.22“、"8468.22”)

为什么会发生这种事?

我也试着用

代码语言:javascript
复制
return [firstObject compare:secondObject options:NSNumericSearch];

但没有得到正确的排序数组。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-16 06:31:53

代码语言:javascript
复制
NSSortDescriptor *desc = [[NSSortDescriptor alloc]initWithKey:@"" ascending:NO];
NSMutableArray *yourTempArray = [[NSMutableArray alloc]initWithObjects:@"8459.93",@"8466.28",@"8466.28",@"8160.70",@"8162.61",@"7278.56", nil];
[yourTempArray sortUsingDescriptors:[NSArray arrayWithObject:desc]];
NSLog(@"sotedAr == %@",yourTempArray);

输出:

代码语言:javascript
复制
sotedAr == (
"8466.28",
"8466.28",
"8459.93",
"8162.61",
"8160.70",
"7278.56"

)

票数 2
EN

Stack Overflow用户

发布于 2013-04-16 06:36:36

要按降序顺序排序,只需在代码中切换firstObject和secondObject:

代码语言:javascript
复制
sortedArray = [arr_distance sortedArrayUsingComparator:^(id firstObject, id secondObject) {
  return [((NSString *)secondObject) compare:((NSString *)firstObject) options:NSNumericSearch];
}];
票数 2
EN

Stack Overflow用户

发布于 2013-04-16 06:29:01

下面的代码可能有助于按降序排列数组。

代码语言:javascript
复制
NSArray *arr = [NSArray arrayWithObjects:@"8459.93",@"8466.28",@"8466.28",@"8160.70",@"8162.61",@"7278.56", nil];
NSMutableArray *yourTempArray = [[NSMutableArray alloc]init];
[yourTempArray addObjectsFromArray:arr];
NSLog(@"before sorting = %@",yourTempArray);
NSSortDescriptor* sort = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];

[yourTempArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];
NSLog(@"After sorting = %@",yourTempArray);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16030104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档