Der einfachste Ansatz besteht darin, eine Sortierauswahl bereitzustellen ( Einzelheiten finden Sie in der Apple-Dokumentation ).
Ziel c
sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Schnell
let descriptor: NSSortDescriptor = NSSortDescriptor(key: "YourKey", ascending: true, selector: "localizedCaseInsensitiveCompare:")
let sortedResults: NSArray = temparray.sortedArrayUsingDescriptors([descriptor])
Apple bietet verschiedene Selektoren für die alphabetische Sortierung:
compare:
caseInsensitiveCompare:
localizedCompare:
localizedCaseInsensitiveCompare:
localizedStandardCompare:
Schnell
var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
students.sort()
print(students)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
Referenz
In den anderen hier angegebenen Antworten wird die Verwendung von
@selector(localizedCaseInsensitiveCompare:)
Dies funktioniert hervorragend für ein Array von NSString. Wenn Sie dies jedoch auf einen anderen Objekttyp erweitern und diese Objekte nach einer 'name'-Eigenschaft sortieren möchten, sollten Sie stattdessen Folgendes tun:Ihre Objekte werden nach der Namenseigenschaft dieser Objekte sortiert.
Wenn Sie möchten, dass bei der Sortierung die Groß- und Kleinschreibung nicht berücksichtigt wird, müssen Sie den Deskriptor wie folgt festlegen
quelle
name
kein gültiger Schlüssel ist. Mit welchem Schlüssel sortiere ich Zeichenfolgen mit einem NSSortDescriptor alphabetisch?Eine leistungsfähigere Methode zum Sortieren einer Liste von NSString, um Dinge wie NSNumericSearch zu verwenden:
In Kombination mit SortDescriptor würde dies Folgendes ergeben:
quelle
Verwenden Sie den folgenden Code zum Sortieren in alphabetischer Reihenfolge:
Unten ist das Konsolenprotokoll:
quelle
Eine andere einfache Methode zum Sortieren eines Arrays von Zeichenfolgen besteht darin, die NSString-
description
Eigenschaft folgendermaßen zu verwenden:quelle
Dies hat für die meisten Zwecke bereits gute Antworten, aber ich werde meine hinzufügen, die spezifischer ist.
Im Englischen ignorieren wir normalerweise beim Alphabetisieren das Wort "the" am Anfang einer Phrase. "Die Vereinigten Staaten" würden also unter "U" und nicht unter "T" bestellt.
Das macht das für dich.
Es wäre wahrscheinlich am besten, diese in Kategorien einzuteilen.
quelle
quelle