Ich versuche, ein Swift-Array, das aus Wörterbüchern besteht, zu sortieren. Ich habe unten ein Arbeitsbeispiel vorbereitet. Ziel ist es, das gesamte Array mit dem Element "d" in den Wörterbüchern zu sortieren. Ich habe dieses Arbeitsbeispiel vorbereitet, die in ein Swift-Projekt gelegt werden können:Sortieren Swift Array von Wörterbüchern nach Wert eines Schlüssels
var myArray = Array<AnyObject>()
var dict = Dictionary<String, AnyObject>()
dict["a"] = "hickory"
dict["b"] = "dickory"
dict["c"] = "dock"
dict["d"] = 5
myArray.append(dict)
dict["a"] = "three"
dict["b"] = "blind"
dict["c"] = "mice"
dict["d"] = 6
myArray.append(dict)
dict["a"] = "larry"
dict["b"] = "moe"
dict["c"] = "curly"
dict["d"] = 2
myArray.append(dict)
println(myArray[0])
println(myArray[1])
println(myArray[2])
}
Diese in das Protokoll in der folgenden Ausgabe führt:
{
a = hickory;
b = dickory;
c = dock;
d = 5;
}
{
a = three;
b = blind;
c = mice;
d = 6;
}
{
a = larry;
b = moe;
c = curly;
d = 2;
}
Das Ziel ist es, die Anordnung der „d zu sortieren "(d‚Element, so dass der obige Ausgang in dem folgenden geändert werden würde, die auf numerischer Reihenfolge der basiert‘:‚2, 5, 6‘):
{
a = larry;
b = moe;
c = curly;
d = 2;
}
{
a = hickory;
b = dickory;
c = dock;
d = 5;
}
{
a = three;
b = blind;
c = mice;
d = 6;
}
es einige andere Fragen, die ähnlich scheinen aber wenn du klügst Bei ihnen wird klar, dass sie das nicht ansprechen. Vielen Dank für Ihre Hilfe.
Nein, das hat nicht funktioniert. Es ergab sich ein Fehler: Kann keine Überladung für 'sortierte' finden, die eine Argumentliste vom Typ akzeptiert '(Array, (_, _) -> _)' Können Sie dies in XCode versuchen, um zu sehen, ob Ihre Idee funktioniert? Update: Warten Sie, ich habe versucht, den gesamten von Ihnen bereitgestellten Code-Block zu verwenden, der auch eine aktualisierte Array-Deklaration enthält. Der Fehler ist verschwunden, aber die Art hat nicht funktioniert. Ich habe: [b: dickory, a: Hickory, c: docken] [b: blind, a: drei, c: Mäuse] [b: moe, a: larry, c: lockig] –
Yeah du hast um die Deklarationen wie oben beschrieben zu ändern. 'var myArray = Array>() var dict = Wörterbuch () ' –
oisdk
Bitte lesen Sie die vorherige Antwort, die ich aktualisiert habe. Der Fehler ist verschwunden, aber die Art hat nicht funktioniert. Ich habe Ihren Code direkt in XCode zusammen mit println (myArray [0]) eingefügt println (myArray [1]) println (meinArray [2]) und haben: [b: dickory, a: hickory, c: dock] [b : blind, a: drei, c: mäuse] [b: moe, a: larry, c: lockig] –