我有一个继承自Codable的协议。
protocol OrderItem:Codable {
var amount:Int{get set}
var isPaid:Bool{get set}
}
并且一个结构体符合这个协议
struct ProductItem:OrderItem {
var amount = 0
var isPaid = false
var price = 0.0
}
然而,当我将这个结构放入可编码的结构中时,出现了错误。
struct Order:Codable {
var id:String
var sn:String = ""
var items:[OrderItem] = []
var createdAt:Int64 = 0
var updatedAt:Int64 = 0
}
这些错误是
Type 'Order' does not conform to protocol 'Encodable'
Type 'Order' does not conform to protocol 'Decodable'
但是,如果我将items:[OrderItem]更改为items:[ProductItem],则一切正常!
我该如何解决这个问题?