7
我正在xcode4.3/Objective-C中构建应用程序,并在尝试对NSMutableArray进行排序时遇到了问题。我将用sqlite数据库中的字符串填充它。瑞典字符å,ä和ö出现问题。如何在字符串包含åäö时按字母顺序排列字符串数组?
的orded阵列应该是这个样子:如,BR,醇,ST,AR,OG,OS。
但是,当我使用选择比较的顺序是这样的:因为,AR,BR,醇,OG,操作系统,ST。
当我使用localizedCompare顺序变化:如,AR,BR,OG,醇,操作系统,ST。
根据旧的线程localizedCompare应该是解决方案,但我不能让它正常工作。如果我使用终端访问sqlite数据库并输入ORDER,我会得到正确的结果。我的问题可能与xcode或iphone模拟器中的某些设置有关,因为它们都不显示正确的顺序?或者是本地化比较错误的方式去?只要完成工作,我会很乐意接受任何解决方法。谢谢。
你可以提供你所使用的这个代码? – David 2012-03-28 17:10:11
我会检查'localizedStandardCompare:'是否有任何不同。否则,您可能需要实现自己的比较器(或者因为您提到了SQLite数据库......如果您使用的是核心数据,则可以让数据库通过在获取请求上设置排序描述符来进行排序)。 – rickster 2012-03-28 17:24:56
本地化比较应该可以正常工作,但前提是您的区域设置(在您的机器中)设置为瑞典。我得到的奇怪的事情是,如果我登录数组的特殊字符的单词不打印,但显示为unicode代码。如果我记录了他们正确记录的单词并按照正确的顺序。 – rdelmar 2012-03-28 22:11:25