Avatar ·

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