Как я могу настроить порядок сортировки для NSArray строк? - PullRequest
0 голосов
/ 25 июля 2011

У меня есть ряд строк, представляющих следующие имена файлов: hello1(eng).txt, hello1(por).txt, hello1.txt. Когда я сортирую их, используя

NSArray *array = [filePaths sortedArrayUsingSelector: @selector(compare:)];

Заказ возвращен hello1(eng).txt, hello1(por).txt, hello1.txt. Вместо этого я хотел бы иметь этот порядок, где элементы в скобках возвращаются последними: hello1.txt, hello1(eng).txt, hello1(por).txt.

Как настроить сортировку, чтобы обеспечить этот порядок?

1 Ответ

2 голосов
/ 04 августа 2011

sortedArrayUsingSelector: указывает массиву запрашивать отдельные объекты, которые он пытается отсортировать, для соответствующего порядка сортировки.Чтобы предоставить свои собственные, используйте одну из других sortedArrayUsing… функций.Самым простым для вашей задачи является, вероятно, sortedArrayUsingFunction: context: , которая позволяет вам указать простую старую функцию C, которая выполняет сравнение.

Другой подход заключается в использовании категории для добавления сортировкифункция к классу NSString, что-то вроде compareInMyFavor: и передать его как селектор для sortedArrayUsingSelector:.

Теперь, когда я думаю об этом, последнее, вероятно, является более чистым решением.Ваш звонок.

...