我有一个
NSArray *foo = @[@"Chicago Hts, IL", @"Chicago Heights, IL", @"Chicago, IL"];
我想得到一个这样的排序数组:
@[@"Chicago, IL", @"Chicago Heights, IL", @"Chicago Hts, IL"];
我用了
[foo sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:),
这导致
@[@"Chicago Heights, IL", @"Chicago Hts, IL", @"Chicago, IL"];
该数组有大约 100k+ 个条目,因此根据空白空间拆分字符串并对其进行排序和“未拆分”会导致性能不佳。
我意识到 Finder 对文件的排序方式与“localizedCaseInsensitiveCompare”相同,所以我想我不走运。
我倾向于根据第一个字符“a”拆分数组,根据空白空间加入字符串,对其进行排序,然后在 tableView 中将其显示给用户,如果用户滚动超过第一组结果,获取“b”的下一组对象,通过忽略空格连接单词,排序,“取消连接单词”并显示。