我有一个可编码的模型
public final class MyCodableModel: Codable {
public let id: Int
}
我还有另一个模型,其中恰好有相同的变量。
public final class MyOtherModel {
public let id: Int
}
现在,我想在扩展中MyCodableModel
使用实例化。由于依赖问题,MyOtherModel
我不想直接修改。MyCodableModel
我首先尝试在我的扩展中使用普通的初始化程序,但它说我需要使用 a 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
?