我有一个可编码的模型
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
?