在IOS中使用NSSortDescriptor对数组(NSString + Number)进行排序?

Sunny Shah

我想使用排序数组NSSortDescriptor

这是我的代码

 NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"filename"  ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[arrDocuments sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

我得到的是这个错误的结果。

  1. 新资料夹1
  2. 新资料夹11
  3. 新资料夹12
  4. 新资料夹2

预期的

  1. 新资料夹1
  2. 新资料夹2
  3. 新资料夹11
  4. 新资料夹12
雾雾

该功能localizedCaseInsensitiveCompare:是按字母搜索。

您最好使用类似...的功能

compare:options:

使用这些选项时,NSNumericSearch会将任何数字视为数字,然后对它们进行排序,1、2、10等。

按字母顺序,虽然10在2之前,所以您遇到了问题。

整个代码看起来像...

NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"fileName" ascending:YES comparator:^(NSString *obj1, NSString *obj2) {

    return [obj1 compare:obj2 options:NSNumericSearch | NSCaseInsensitiveSearch];

}];

[arrDocuments sortUsingDescriptors:@[sd]];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用NSSortDescriptor对数组进行排序而不使用任何键?

来自分类Dev

在Swift中使用NSDate进行NSSortDescriptor排序

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

来自分类Dev

在Swift Ascending中使用空项目对数组进行排序

来自分类Dev

在Java中使用max-heap对数组进行排序

来自分类Dev

在PHP中使用多个条件对数组进行排序

来自分类Dev

如何在PHP中使用If对数组进行排序

来自分类Dev

在Swift中使用AnyObjects对数组进行排序

来自分类Dev

使用NSSortDescriptor对NSNumber进行排序

来自分类Dev

在Perl中使用逗号或点对字符串进行排序以对数组进行排序

来自分类Dev

Swift:使用NSRange对数组进行排序

来自分类Dev

使用HTML标签对数组进行排序

来自分类Dev

使用模板对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序

来自分类Dev

Python:使用NaN对数组进行排序

来自分类Dev

使用HTML标签对数组进行排序

来自分类Dev

使用中位数对数组进行排序

来自分类Dev

使用javascript对数组表进行排序

来自分类Dev

使用 compareTo 方法对数组进行排序

来自分类Dev

使用 Powershell 对数组值进行排序

来自分类Dev

使用快速排序使用指针对数组进行排序

来自分类Dev

列对数组进行排序?

来自分类Dev

如何对数组进行排序

来自分类Dev

以升序对数组进行排序

来自分类Dev

无法对数组进行排序

来自分类Dev

使用排序功能按NSDates对数组进行排序

来自分类Dev

使用插入排序对数组进行排序

来自分类Dev

使用合并排序对数组进行排序

来自分类Dev

使用预定义的排序顺序对数组进行排序