Próbuję sortować tablicę Swift, która składa się ze słowników. Poniżej przygotowałem działający przykład. Celem jest posortowanie całej tablicy przez element "d" w słownikach. Przygotowałem ten przykład roboczy, który może być umieszczony w Swift projektu:Sortowanie Swift Array słowników według wartości klucza
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])
}
Wynika to w następujący wyjścia do dziennika:
{
a = hickory;
b = dickory;
c = dock;
d = 5;
}
{
a = three;
b = blind;
c = mice;
d = 6;
}
{
a = larry;
b = moe;
c = curly;
d = 2;
}
Celem jest, aby posortować tablicę przez „d "elementem, tak że powyższy wyjściowy będzie zmieniony na następujące (który jest oparty na porządku numerycznym«d»:«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;
}
Istnieje kilka innych pytań, które wydają się podobne , ale kiedy się kręcisz Na ich podstawie staje się jasne, że nie zajmują się tym. Dziękuję za pomoc.
Nie, to nie działa. Wynika z tego błąd: Nie można znaleźć przeciążenia dla "posortowanego", który akceptuje listę argumentów typu "(Array, (_, _) -> _) ' Czy możesz spróbować tego w XCode, aby sprawdzić, czy twój pomysł Prace? Aktualizacja: Czekaj, próbowałem użyć całego bloku kodu, który podałeś, który zawiera również zaktualizowaną deklarację tablicy. Błąd zniknął, ale sortowanie nie zadziałało. Mam: [b: dickory, a: hickory, c: dock] [b: niewidomy, a: trzy, c: myszy] [b: moe, a: larry, c: curly] –
Tak, masz zmienić deklaracje, które mam powyżej. 'var myArray = Array>() var dict = Słownik () ' –
oisdk
Przeczytaj poprzednią odpowiedź, którą zaktualizowałem. Błąd zniknął, ale sortowanie nie zadziałało. Wkleiłem twój kod bezpośrednio do XCode wraz z println (myArray [0]) println (myArray [1]) println (myArray [2]) i otrzymałem: [b: dickory, a: hickory, c: dock] [b : blind, a: three, c: mice] [b: moe, a: larry, c: curly] –