gpt4 book ai didi

IOS 为数值字段排序 NSMutableArray

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:18:06 25 4
gpt4 key购买 nike

我希望外面有人可以帮我解决这个问题:

我有一个未排序的字典数组,其中有一个包含数字(例如 12,0;1,2;6,4)的 STRING 字段 (Km)。如果我做一个普通的排序,数组将按这种方式排序:1,212,06,4

但它应该这样排序:1,26,412,0

有没有人有示例代码如何做到这一点?我期待着得到答案。

感谢和问候马可

编辑我的代码以进一步理解:

NSMutableArray *tempArray = [[NSArray alloc] init];
self.Digger = tempArray;
[tempArray release];

self.Digger = [self.Diggers objectForKey:@"Rows"];

NSSortDescriptor * sort = [[[NSSortDescriptor alloc] initWithKey:@"KM" ascending:true] autorelease]; [self.Digger sortUsingDescriptors:[NSArray arrayWithObject:sort]];
self.Digger = sort;

但这给了我日志中的以下错误:-[NSSortDescriptor count]: 无法识别的选择器发送到实例

最佳答案

最好将数字作为 NSNumber 而不是字符串放入字典中。这避免了两个问题:


1 十进制数字的本地化,1.2 与 1,2 将根据用户在世界中的位置以不同方式工作。
2.数字的自然排序顺序是所需的。

NSArray *a = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:12.0] forKey:@"Km"],
[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat: 1.2] forKey:@"Km"],
[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat: 6.4] forKey:@"Km"],
nil];

NSSortDescriptor * sort = [[[NSSortDescriptor alloc] initWithKey:@"Km" ascending:true] autorelease];
NSArray *sa = [a sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
NSLog(@"sa: %@", sa);

NSLog输出:

2011-10-30 10:08:58.791 TestNoARC[86602:f803] sa: (
{
Km = "1.2";
},
{
Km = "6.4";
},
{
Km = 12;
}
)

关于IOS 为数值字段排序 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com