Ich habe Schwierigkeiten mit dem Versuch, eine Reihe von Wörterbüchern zu sortieren.
Meine Wörterbücher haben einige interessante Werte, Preise, Beliebtheit usw.
Irgendwelche Vorschläge?
Verwenden Sie NSSortDescriptor
so ..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories
ist das zu sortierende Array. recent
ist ein anderes veränderbares Array, das Wörterbuchwerte sortiert hat. Ändern Sie den @"interest"
mit dem Schlüsselwert, nach dem Sie sortieren müssen.
Alles Gute
[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 das schon einfach genug.
Sie können einfach von der übergeordneten zur gewünschten untergeordneten Eigenschaft wechseln. Für z.
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
Update, sortUsingDescriptors ist jetzt sortiertArrayUsingDescriptors
So ist es wie:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Denken Sie daran, das Array zuzuweisen
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:
verwenden, um Ihr Array zu sortieren.
Siehe NSArray-Klassenreferenz