7
ด้วย JSONDecoder ใน Swift 4 คีย์ที่หายไปสามารถใช้ค่าเริ่มต้นแทนที่จะต้องเป็นคุณสมบัติเสริมได้หรือไม่
Swift 4 เพิ่มCodableโปรโตคอลใหม่ เมื่อฉันใช้JSONDecoderดูเหมือนว่าต้องการให้คุณสมบัติที่ไม่ใช่ทางเลือกทั้งหมดของCodableคลาสของฉันมีคีย์ใน JSON มิฉะนั้นจะเกิดข้อผิดพลาด การทำให้ทุกคุณสมบัติของคลาสของฉันเป็นทางเลือกดูเหมือนจะเป็นเรื่องยุ่งยากโดยไม่จำเป็นเนื่องจากสิ่งที่ฉันต้องการจริงๆคือการใช้ค่าใน json หรือค่าเริ่มต้น (ฉันไม่ต้องการให้คุณสมบัติเป็นศูนย์) มีวิธีทำไหม? class MyCodable: Codable { var name: String = "Default Appleseed" } func load(input: String) { do { if let data = input.data(using: .utf8) { let result = try JSONDecoder().decode(MyCodable.self, from: data) print("name: \(result.name)") } } catch { print("error: \(error)") …