gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:34:10 26 4
gpt4 key购买 nike

我想使用 NSSortDescriptor 对数组进行排序。

这是我的代码

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

我得到的是这个不正确的结果。

  1. New Folder 1
  2. New Folder 11
  3. New Folder 12
  4. New Folder 2

预期

  1. New Folder 1
  2. New Folder 2
  3. New Folder 11
  4. New Folder 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]];

关于ios - 在IOS中使用NSSortDescriptor对数组(NSString + Number)进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719307/

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