Najprostszym podejściem jest zapewnienie selektora sortowania ( szczegółowe informacje w dokumentacji Apple )
Cel C
sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Szybki
let descriptor: NSSortDescriptor = NSSortDescriptor(key: "YourKey", ascending: true, selector: "localizedCaseInsensitiveCompare:")
let sortedResults: NSArray = temparray.sortedArrayUsingDescriptors([descriptor])
Apple oferuje kilka selektorów do sortowania alfabetycznego:
compare:
caseInsensitiveCompare:
localizedCompare:
localizedCaseInsensitiveCompare:
localizedStandardCompare:
Szybki
var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
students.sort()
print(students)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
Odniesienie
Inne podane tu odpowiedzi wspominają o użyciu
@selector(localizedCaseInsensitiveCompare:)
To działa świetnie dla tablicy NSString, jednak jeśli chcesz rozszerzyć to na inny typ obiektu i posortować te obiekty według właściwości „name”, powinieneś to zrobić zamiast tego:Twoje obiekty zostaną posortowane według właściwości nazwy tych obiektów.
Jeśli chcesz, aby sortowanie nie uwzględniało wielkości liter, musisz ustawić taki deskryptor w ten sposób
źródło
name
nie jest to prawidłowy klucz. Jakiego klucza używam do sortowania ciągów alfabetycznie za pomocą NSSortDescriptor?Bardziej wydajny sposób sortowania listy NSString w celu użycia takich rzeczy jak NSNumericSearch:
W połączeniu z SortDescriptor dałoby to coś takiego:
źródło
Użyj poniższego kodu do sortowania w kolejności alfabetycznej:
Poniżej znajduje się dziennik konsoli:
źródło
Inna łatwa metoda sortowania tablicy ciągów polega na użyciu
description
właściwości NSString w ten sposób:źródło
To już ma dobre odpowiedzi na większość celów, ale dodam moje, które jest bardziej szczegółowe.
W języku angielskim, zwykle alfabetycznie, ignorujemy słowo „the” na początku frazy. Tak więc „Stany Zjednoczone” byłyby zamawiane pod „U”, a nie „T”.
To dla ciebie.
Prawdopodobnie najlepiej byłoby umieścić je w kategoriach.
źródło
źródło