有谁知道如何获取一些按字母顺序排序但忽略大小写的结果?
问问题
8620 次
4 回答
78
感谢您的回复,但我需要对一个简单的“查询”忽略大小写的结果进行排序。您的建议适用于搜索和比较。
用 SQL 来说,我需要一个ORDER BY firstName ASC
,并且这个命令对我的使用必须不区分大小写。
我做了一些谷歌搜索,并结束了阅读NSSortDescriptor 类参考,我可以找到我的问题的答案。解决方案是将选择器设置为排序描述符,如下所示:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
我希望它对更多的人有用。
于 2010-01-07T13:21:24.400 回答
10
如果应用程序已本地化为多种语言,请考虑使用localizedCaseInsensitiveCompare:
选择器而不是caseInsensitiveCompare
. 它将具有避免字母“é”在字母“e”之后的效果。
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
于 2012-09-18T10:51:24.523 回答
5
查看NSPredicate 编程指南,但基本上使用 [c] 来忽略大小写:
@"firstName BEGINSWITH[c] $FIRST_NAME"
于 2010-01-06T13:37:46.523 回答
4
斯威夫特版本:
let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))
于 2017-03-08T17:54:23.090 回答