Cómo hacer un enum Decodable en Swift: guía completa
¡Hola a todos! Soy un desarrollador iOS principiante y tuve un problema con la decodificación de JSON a enum.
Tengo este enum para el estado del pedido:
```swift
enum OrderStatus: String {
case pending
case confirmed
case shipped
case delivered
case cancelled
}
```
Y recibo JSON del servidor:
```json
{
"id": 1234,
"status": "pending"
}
```
Estoy intentando decodificar esto con JSONDecoder:
```swift
struct Order: Decodable {
let id: Int
let status: OrderStatus
}
```
Pero Xcode muestra un error: "Type 'OrderStatus' does not conform to protocol 'Decodable'"
Ya agregué String como rawValue para el enum, pensé que eso ayudaría. Pero no. ¿Qué estoy haciendo mal? ¿Necesito escribir mi propia implementación de init(from:) o hay una forma más sencilla?
También me interesa saber qué hacer si el servidor envía un número en lugar de una cadena (por ejemplo, 0 - pending, 1 - confirmed), o si en el JSON llega un valor desconocido que no está en el enum. ¡Gracias de antemano por la ayuda!
<<>>