Я хочу, чтобы init из rawValue для моего перечисления в Swift возвращал значение по умолчанию, если rawValue init вернет нуль. Прямо сейчас у меня есть что-то вроде этого:
public init(fromRawValue: String){
self = Language(rawValue: fromRawValue) ?? .English
}
Мне это не нравится, потому что это совершенно новый инициализатор. Я попытался сделать что-то вроде этого:
public init(rawValue: String){
self = Language(rawValue: fromRawValue) ?? .English
}
Но у меня есть исключение во время выполнения с плохим доступом. Могу ли я каким-то образом заставить его работать, или мне просто нужно использовать это новое, и я не могу переопределить оригинал, чтобы он не был необязательным?
Я хотел бы знать, можно ли переопределить исходный init из rawValue, а не обходной, с полностью новым, который использует отказоустойчивый.