и то же самое для закодированного, мы должны привести к фактическому типу перед кодированием:
я есть протокол, который унаследован от кодируемого
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'
Но если я изменю элементы: [OrderItem] на элементы: [ProductItem], все работает!
Как я могу решить эту проблему?