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