Подтвердить что ты не робот

IPhone CoreData: Сортировка с umlauts

У меня есть приложение, которое извлекает данные (список стран) из базы данных 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];

Есть ли способ, чтобы эти специальные имена char отображались в позиции, описанной выше? В этом нет ничего в Интернете...

Большое спасибо.

4b9b3361

Ответ 1

Спасибо за ваши ответы, я мог бы решить проблему еще одним (простым) способом!

Мне просто пришлось изменить NSSortDescriptor следующим образом:

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

Ответ 2

Вы должны использовать UILocalizedIndexedCollation для сортировки и категоризации записей в разделах. Код для реализации этого вопроса находится в вопросе NSFetchedResultsController v.s. UILocalizedIndexedCollation

UILocalizedIndexedCollation была построена так, чтобы иметь возможность на основе языка классифицировать слова на основе текущих языковых настроек. Á и à будут помещены в раздел A.