需要帮助对包含åäö(瑞典字符)的NSArray进行排序 我现在正在使用
[keyArray addObjectsFromArray:[[names allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]];
但这是AÅÄÖ
答案 0 :(得分:5)
这个问题类似于我在这里回答的问题Sort NSArray of NSStrings like Addressbook on iphone sort。你需要进行变音符号的不敏感搜索。
NSArray *array = [NSArray arrayWithObjects:@"aar", @"åäö", @"aao", nil];
NSArray *sorted = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [(NSString*)obj1 compare:obj2 options:NSDiacriticInsensitiveSearch|NSCaseInsensitiveSearch];
}];
注意:sortedArrayUsingComparator:
需要iOS 4.0及更高版本。对于iOS< 4.0使用sortedArrayUsingSelector:
。
答案 1 :(得分:0)
正如问题和答案下面的评论所述; [NSString localizedCompare:]
是使用åäö以正确方式排序的最佳方式。
根据我的理解NSDiacriticInsensitiveSearch
将å和ä视为a和ö作为o,这不是你在瑞典语排序时所需要的。