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!
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Beste IDEs und Tools für die Go-Entwicklung im Jahr 2024
Arbeiten mit dem Dateisystem in Rust: Vollständiger Leitfaden
WebSocket in JavaScript: Fortgeschrittene Echtzeitanwendungen
WebAssembly und Kotlin: Fortgeschrittene Integration und Optimierung