2016-07-19 12 views
0
var ditto:[NSMutableDictionary] = [["name":"Bob", "rank":14], ["name":"Randy", "rank":5], ["name":"Julie", "rank":20]] 

Wie kann ich dito nach numerischer Reihenfolge sortieren, hoch nach niedrig, nach "Rang"? Dies ist das Ergebnis ich will:Wie erfolgt die Anordnung nach numerischer Reihenfolge vom höchsten zum niedrigsten Wert in [NSMutableDictionary]?

var ditto:[NSMutableDictionary] = [["name":"Julie", "rank":20],["name":"Bob", "rank":14], ["name":"Randy", "rank":5]] 

Antwort

1

Hier ist der Code

ditto.sortInPlace { ($0.0["rank"] as! Int) > ($0.1["rank"] as! Int) } 

aber Sie wirklich ein Modellwert wie folgt

struct Person { 
    let name: String 
    let rank: Int 
} 

Sie auch mit der alten Art und Weise Art und Weise verwenden, sollten aufhören sollte NSMutableDictionary und starten Sie mit dem Swift Wörterbuch ... Sie programmieren in Swift Sie nicht :)

+0

scheint nicht zu funktionieren, in der gleichen Reihenfolge danach – gooberboobbutt

+1

@gooberboobbutt zeigt: Ja, weil ich verwendet 'sort', die ein neues Array zurückgibt. Ich habe meinen Code mit 'sortInPlace' aktualisiert. Bitte versuche es erneut. –

+0

Danke! Ich werde dies als Antwort auswählen, sobald ich es kann. Außerdem werde ich das Swift-Wörterbuch ausprobieren. – gooberboobbutt

1

alle Einträge mit „Rang“ Wert Angenommen:

ditto.sortInPlace(){ $0["rank"]! as! Int > $1["rank"]! as! Int }