ฉันต้องการให้ init จาก rawValue สำหรับ enum ของฉันใน Swift เพื่อส่งคืนค่าเริ่มต้นหาก rawValue init จะส่งคืนศูนย์ ตอนนี้ฉันมีบางอย่างเช่นนี้:
public init(fromRawValue: String){
self = Language(rawValue: fromRawValue) ?? .English
}
ฉันไม่ชอบสิ่งนี้เพราะมันเป็นตัวเริ่มต้นใหม่ทั้งหมด ฉันพยายามทำอะไรแบบนี้:
public init(rawValue: String){
self = Language(rawValue: fromRawValue) ?? .English
}
แต่ฉันมีข้อยกเว้นรันไทม์กับการเข้าถึงที่ไม่ดี ฉันสามารถทำให้มันใช้งานได้หรือฉันแค่ต้องใช้อันใหม่นี้และฉันไม่สามารถแทนที่อันเดิมเพื่อให้เป็นทางเลือกได้
ฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะแทนที่ init ดั้งเดิมจาก rawValue ไม่ใช่วิธีแก้ปัญหาด้วยอันใหม่ทั้งหมดที่ใช้อันที่ล้มเหลว