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 отображались в позиции, описанной выше? В этом нет ничего в Интернете...
Большое спасибо.
Ответы
Ответ 1
Спасибо за ваши ответы, я мог бы решить проблему еще одним (простым) способом!
Мне просто пришлось изменить NSSortDescriptor следующим образом:
[NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES selector: @selector(localizedCompare:)]
Ответ 2
Вы должны использовать UILocalizedIndexedCollation для сортировки и категоризации записей в разделах. Код для реализации этого вопроса находится в вопросе NSFetchedResultsController v.s. UILocalizedIndexedCollation
UILocalizedIndexedCollation была построена так, чтобы иметь возможность на основе языка классифицировать слова на основе текущих языковых настроек. Á и à будут помещены в раздел A.