• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

IOS 为数值字段排序 NSMutableArray

[复制链接]
菜鸟教程小白 发表于 2022-12-13 09:36:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我希望外面有人可以帮助我:

我有一个未排序的字典数组,其中有一个字符串字段 (Km),其中包含数字(例如 12,0;1,2;6,4)。如果我做一个正常的排序,数组将以这种方式排序: 1,2 12,0 6,4

但它应该这样排序: 1,2 6,4 12,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]:无法识别的选择器发送到实例



Best Answer-推荐答案


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


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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap