«Ошибки выброшены», возможно, могут быть подсказкой, как это исправить. Добавьте throws
к required init
. Кроме того, не забудьте позвонить super
, чтобы ваш код был правильно инициализирован, иначе вы получите другую ошибку. Попробуйте эти изменения ...
required init(from decoder: Decoder) throws { // add throws to eliminate errors
let container = try decoder.container(keyedBy: CodingKeys.self)
self.sku = try container.decode(Double.self, forKey: .sku)
self.isNew = try container.decode(Bool.self, forKey: .isNew)
try super.init(from: decoder) // calling super for proper intialization of code
}
В качестве примечания: если вы не используете десятичные точки в своих sku, вам следует изменить тип на Int
вместо Double
.