Самый простой подход заключается в предоставлении селектора сортировки ( подробности в документации Apple )
Objective-C
sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
стриж
let descriptor: NSSortDescriptor = NSSortDescriptor(key: "YourKey", ascending: true, selector: "localizedCaseInsensitiveCompare:")
let sortedResults: NSArray = temparray.sortedArrayUsingDescriptors([descriptor])
Apple предоставляет несколько селекторов для алфавитной сортировки:
compare:
caseInsensitiveCompare:
localizedCompare:
localizedCaseInsensitiveCompare:
localizedStandardCompare:
стриж
var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
students.sort()
print(students)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
Ссылка
В других ответах, приведенных здесь, упоминается использование.
@selector(localizedCaseInsensitiveCompare:)
Это прекрасно работает для массива NSString, однако, если вы хотите расширить его на другой тип объекта и отсортировать эти объекты в соответствии со свойством name, вы должны сделать это вместо этого:Ваши объекты будут отсортированы в соответствии с именем свойства этих объектов.
Если вы хотите, чтобы сортировка не учитывала регистр символов, вам нужно установить дескриптор следующим образом
источник
name
это недопустимый ключ. Какой ключ я использую для сортировки строк в алфавитном порядке с помощью NSSortDescriptor?Более мощный способ сортировки списка NSString для использования таких вещей, как NSNumericSearch:
В сочетании с SortDescriptor это даст что-то вроде:
источник
Используйте приведенный ниже код для сортировки в алфавитном порядке:
Ниже находится консольный журнал:
источник
Другой простой способ сортировки массива строк состоит в использовании
description
свойства NSString следующим образом:источник
У этого уже есть хорошие ответы для большинства целей, но я добавлю мой, который более конкретен.
В английском, обычно, когда мы алфавитируем, мы игнорируем слово «the» в начале фразы. Таким образом, «Соединенные Штаты» будут заказываться под буквой «U», а не «T».
Это делает это для вас.
Вероятно, было бы лучше поместить их в категории.
источник
источник