我想使用排序数组NSSortDescriptor
。
这是我的代码
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"filename" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[arrDocuments sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
我得到的是这个错误的结果。
- 新资料夹1
- 新资料夹11
- 新资料夹12
- 新资料夹2
预期的
- 新资料夹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]];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句