Avatar ·

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! <<>>

Solución principal: