iPhone CoreData:与变音符号一起排序

时间:2011-09-28 14:59:30

标签: iphone sorting core-data fetch diacritics

我有一个从sqlite数据库中获取数据(国家列表)的应用程序。 这些国家都是德语,包含变音符号,例如Österreich。我想获取按名称排序的那些国家,并期望Österreich在其他国家附近有“O”,但它在结果的最后。相反。

此代码用于获取已排序的国家/地区:

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

 [fetchRequest setEntity: [NSEntityDescription entityForName: @"Continent" inManagedObjectContext: moc]];
    [fetchRequest setSortDescriptors: [NSArray arrayWithObject: [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: YES] autorelease]]];

 NSError *error = nil;
 NSArray *result = [moc executeFetchRequest: fetchRequest error: &error];

有没有办法让这些特殊的字符名称出现在我上面描述的位置?在网上没有找到任何东西...

非常感谢。

2 个答案:

答案 0 :(得分:10)

感谢您的回答,我可以另外(简单)解决问题!

我只需要像这样修改NSSortDescriptor:

[NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES selector: @selector(localizedCompare:)]

答案 1 :(得分:3)

您应该使用UILocalizedIndexedCollat​​ion对条目进行排序和分类。实现此问题的代码在问题NSFetchedResultsController v.s. UILocalizedIndexedCollation

UILocalizedIndexedCollat​​ion的构建是为了能够在每种语言的基础上根据当前语言设置对单词进行分类。 Á和à将放在A部分。