получить строку, используемую localizedStandardCompare при сравнении - PullRequest
5 голосов
/ 27 июня 2011

Я сортирую массив с помощью localizedStandardCompare:, что дает мне объекты, отсортированные в правильном, локализованном порядке.Теперь я хочу использовать их в index для UITableView, что означает, что мне нужно генерировать заголовки разделов.Поскольку localizedStandardCompare: локализует их, строка, начинающаяся с "Æ", сортируется с объектами A.

Так что, если я переберу массив и сделаю раздел для каждой первой буквы, я получу разделы "A", "Æ", "A", "B" и т. Д. Есть ли способ получитьСтрока, которая использовалась для сравнения или хотя бы подражать ей?Я пытался конвертировать с разными кодировками, но никто не вернет мне «A» для «Æ».

Любые другие предложения о том, как генерировать заголовки разделов для локализованных строк?

1 Ответ

0 голосов
/ 02 марта 2014

Вы можете использовать метод CFStringTransform, чтобы получить использованную строку.

Например, используйте значение kCFStringTransformToLatin, чтобы получить простую латинскую строку из входной строки.

Это на самом деле не будет вести себя точно так же, как метод localizedStandardCompare:, но вы можете использовать строковое преобразование для генерации дополнительного атрибута для объекта, который вы используете для фактической сортировки.

ТамЕсть много хороших ресурсов по этой теме:

...