我想使用对数组进行排序NSSortDescriptor
.
这是我的代码
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"filename" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[arrDocuments sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
我得到的是这个不正确的结果。
- 新建文件夹1
- 新建文件夹 11
- 新建文件夹 12
- 新建文件夹2
Expected
- 新建文件夹1
- 新建文件夹2
- 新建文件夹 11
- 新建文件夹 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]];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)