كيفية جعل enum Decodable في Swift: دليل كامل
مرحباً بالجميع! أنا مطور iOS مبتدئ، وقد واجهت مشكلة في فك تشفير JSON إلى enum.
لدي enum لحالة الطلب:
```swift
enum OrderStatus: String {
case pending
case confirmed
case shipped
case delivered
case cancelled
}
```
وأتلقى JSON من الخادم:
```json
{
"id": 1234,
"status": "pending"
}
```
أحاول فك تشفيره باستخدام JSONDecoder:
```swift
struct Order: Decodable {
let id: Int
let status: OrderStatus
}
```
لكن Xcode يعطي خطأ: "Type 'OrderStatus' does not conform to protocol 'Decodable'"
لقد أضفت بالفعل String كـ rawValue للـ enum، ظننت أن هذا سيساعد. لكن لا. ما الخطأ الذي أفعله؟ هل أحتاج إلى كتابة تطبيقي الخاص لـ init(from:) أم هناك طريقة أبسط؟