我正在使用xcode4.3/Objective-C构建一个应用程序,并在尝试对NSMutableArray进行排序时遇到了问题。我将从sqlite数据库中填充它的字符串。问题出现在瑞典字符å,ä和ö上。
有序数组应该看起来像这样:as,br,ol,st,år,ög,ös。
但是当我使用选择器compare时,顺序是这样的:as,år,br,ol,ög,ös,st。
而当我使用localizedCompare时,顺序变为:as,år,br,ög,ol,ös,st。
根据旧线程,localizedCompare应该是解决方法,但我无法使其正确工作。如果我使用终端访问sqlite数据库并键入ORDER,我将获得正确的结果。我的问题是否与xcode或iphone模拟器中的某些设置有关,因为两者都不显示正确的顺序?或者localizedCompare是错误的方法?只要完成工作,我很乐意接受任何解决方法。谢谢。
有序数组应该看起来像这样:as,br,ol,st,år,ög,ös。
但是当我使用选择器compare时,顺序是这样的:as,år,br,ol,ög,ös,st。
而当我使用localizedCompare时,顺序变为:as,år,br,ög,ol,ös,st。
根据旧线程,localizedCompare应该是解决方法,但我无法使其正确工作。如果我使用终端访问sqlite数据库并键入ORDER,我将获得正确的结果。我的问题是否与xcode或iphone模拟器中的某些设置有关,因为两者都不显示正确的顺序?或者localizedCompare是错误的方法?只要完成工作,我很乐意接受任何解决方法。谢谢。
localizedStandardCompare:
是否有任何不同。如果失败,您可能需要实现自己的比较器(或者,如果您提到了 SQLite 数据库...如果您正在使用 Core Data,则可以通过在获取请求上设置排序描述符来让数据库进行排序)。 - rickster