Sie könnten dies mit einem Enum tun.
var myStatus = Status(string: object["status"])
Und es wie folgt verwenden:
print(myStatus) // prints "new"
print(myStatus.rawValue) // prints "1"
Edit:
enum Status: Int {
case new = 1
case open = 2
case closed = 3
case unknown = 99
init(string: String) {
switch string {
case "new", "New": self = .new
case "open", "Open": self = .open
case "closed", "Closed": self = .closed
default:
self = .unknown
}
}
}
ENUM verwenden können, wie dies nicht initialisieren Da die Enum hat einen zugrunde liegenden Typ Int, Um Ihre Sortierung durchzuführen, können Sie den resultierenden Status direkt vergleichen (Dank dieser Frage https://stackoverflow.com/a/27871946/1718685):
var sortedOrders = orders.sort { Status(string: $0["status"]) < Status(string: $1["status"]) }
Ich mag diese Implementierung besser als meine. Ich habe am Ende eine Funktion erstellt, um die "Übersetzung" zu einem numerischen Wert zu machen. – Arcadian