Es gibt viele Möglichkeiten, um so etwas zu erreichen. Der einfachste Weg ist das Modell zu ändern, eine Reihe von Wörterbüchern (oder benutzerdefinierte Objekte) sein:
var people = [
["name": "Rob", "city": "New York", "state": "NY", "street": "11 Wall Street"],
["name": "Jim", "city": "Washington", "state": "DC", "street": "1600 Pennsylvania Avenue"],
["name": "Sue", "city": "Los Angeles", "state": "CA", "street": "4059 Mt Lee Dr."]
]
Und wenn Sie, dass durch name
sortieren möchten:
people.sortInPlace { return $0["name"] < $1["name"] }
Oder stellen wir uns vor dass Sie wirklich ein Wörterbuch, in dem eine eindeutige Kennung der Schlüssel:
var people = [
34: ["name": "Rob", "city": "New York", "state": "NY", "street": "11 Wall Street"],
42: ["name": "Jim", "city": "Washington", "state": "DC", "street": "1600 Pennsylvania Avenue"],
65: ["name": "Sue", "city": "Los Angeles", "state": "CA", "street": "4059 Mt Lee Dr."]
]
Sie dann ein Array von Identifikatoren sortiert nach Namen aufbauen können:
let sortedIdentifiers = people.map { return ($0, $1["name"]) } // this builds array of items like `(34, "Rob")`
.sort { $0.1 < $1.1 } // this sorts that array by the second item (e.g. the name)
.map { $0.0 } // just return the identifiers sorted by name
Sie können nun SUBSCRIPT die sortedIdentifiers
, z.B .:
print(people[sortedIdentifiers[0]])
print(people[sortedIdentifiers[1]])
print(people[sortedIdentifiers[2]])
Es gibt viele Möglichkeiten, dies zu bewältigen. Wenn Sie Ihre Frage bearbeiten, um uns zu zeigen, wie Ihr Modell aussieht, können wir möglicherweise spezifischere Lösungen anbieten.
Und was willst du mit diesem Array machen? Wenn Sie zum Beispiel einfach durch Ihr Wörterbuch iterieren möchten, können Sie 'for (Schlüssel, Wert) im Wörterbuch {...}' eingeben, wo Sie jetzt auf 'Schlüssel' und' Wert' in der 'for'-Schleife verweisen können . – Rob
@Rob Nun, zuerst wäre es, nach Namen zu organisieren (für eine UI-Liste), und zweitens wäre es, den Namen des ausgewählten UI-Elements in dieser Liste zu erhalten (also muss ich aus dem Index der sortierten Array-Version von das Wörterbuch) – Max