Avatar ·

Wie man enum Decodable in Swift macht: vollständige Anleitung

Hallo zusammen! Ich bin ein Anfänger iOS-Entwickler und habe ein Problem mit dem Dekodieren von JSON in enum. Ich habe dieses enum für den Bestellstatus: ```swift enum OrderStatus: String { case pending case confirmed case shipped case delivered case cancelled } ``` Und ich erhalte JSON vom Server: ```json { "id": 1234, "status": "pending" } ``` Ich versuche, dies mit JSONDecoder zu dekodieren: ```swift struct Order: Decodable { let id: Int let status: OrderStatus } ``` Aber Xcode gibt einen Fehler aus: "Type 'OrderStatus' does not conform to protocol 'Decodable'" Ich habe bereits String als rawValue für das enum hinzugefügt, dachte, das würde helfen. Aber nein. Was mache ich falsch? Muss ich meine eigene Implementierung von init(from:) schreiben oder gibt es einen einfacheren Weg? Außerdem frage ich mich, wie man vorgeht, wenn der Server keine Zeichenkette, sondern eine Zahl sendet (z.B. 0 - pending, 1 - confirmed), oder wenn im JSON ein unbekannter Wert kommt, der nicht im enum existiert? Vielen Dank im Voraus für die Hilfe!