У меня есть кодируемая модель
public final class MyCodableModel: Codable {
public let id: Int
}
У меня также есть другая модель, в которой есть такие же переменные.
public final class MyOtherModel {
public let id: Int
}
Теперь я хочу создать экземпляр MyCodableModel
используя MyOtherModel
в расширении.Я не хочу изменять MyCodableModel
напрямую из-за проблем с зависимостями.
Сначала я попытался использовать обычный инициализатор в своем расширении, но он сказал, что мне нужно использовать convenience initializer
, поэтому я закончилс этим:
extension MyCodableModel {
convenience init?(myOtherModel: MyOtherModel) {
id = myOtherModel.id
}
}
Но ошибка говорит 'let' property 'id' may not be initialized directly; use "self.init(...)" or "self = ..." instead
.Я предполагаю, что это потому, что я не использую назначенный инициализатор init(from: Decoder)
.
Есть ли другой способ сделать это?Или я не смогу конвертировать MyOtherModel
в MyCodableModel
?