Ich habe Probleme damit, eine Reihe von Wörterbüchern zu sortieren.
Meine Wörterbücher haben einige Werte von Interesse, Preis, Popularität usw.
Irgendwelche Vorschläge?
ios
objective-c
sorting
nsarray
nsdictionary
iOSDevil
quelle
quelle
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Ich möchte es nicht wirklich in mehrere Zeilen aufteilen. Für mich ist es schon einfach genug.
quelle
Sie können einfach vom übergeordneten Element zur erforderlichen untergeordneten Eigenschaft wechseln. Zum Beispiel
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
quelle
Update, sortUsingDescriptors ist jetzt sortiertArrayUsingDescriptors
Also, es ist wie:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
quelle
[NSArray sortedArrayUsingDescriptors]
und -[NSMutableArray sortUsingDescriptors]
. Die neueste Version ist noch vorhanden und wurde nicht ersetzt.Schreiben Sie eine Sortierfunktion, die die relevanten Felder in zwei Wörterbüchern vergleicht. Wenn Sie diese Version haben, können Sie beispielsweise
NSArray#sortedArrayUsingFunction:context:
Ihr Array sortieren.Siehe NSArray-Klassenreferenz
quelle
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Denken Sie daran, dem Array zuzuweisen
quelle