كيفية جعل 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:) أم هناك طريقة أبسط؟