2 Stimmen

Wörterbücher in einem Array sortieren?

Ich muss ein nsmutablearray von nsdictionaries sortieren, unter Verwendung eines verschlüsselten Objekts aus dem Wörterbuch. Das Objekt ist eine NSNumber. Wie würde ich die Wörterbücher im nsmutablearray sortieren, wobei das erste Objekt die höchste nsNummer ist?

Gracias.

5voto

Jack Punkte 128223

Mit einem benutzerdefinierten Vergleicher, der mit einer Block (Sie können auch andere Wege gehen, aber dieser ist recht kompakt):

NSComparator mysort = ^(id dict1, id dict2) {
    NSNumber n1 = [dict1 objectForKey:@"key"];
    NSNumber n2 = [dict2 objectForKey:@"key"];
    return (NSComparisonResult)[n1 compare:n2];
};

[yourArray sortUsingComparator:mysort];

1voto

Jonny Punkte 15299

Dieser Code scheint ein bisschen daneben zu sein. Hier ist einer, der funktioniert.

[theMutableArrayThatWillBeSorted sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSNumber* n1 = [obj1 objectForKey:@"key"];
    NSNumber* n2 = [obj2 objectForKey:@"key"];

    return [n1 compare:n2];     
}];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X