/ /プロトコルDecodable / Codableに準拠していません-swift、swift4

プロトコルに準拠しないDecodable / Codable - swift、swift4

私は次の構造体を使用しています:

struct Item : Codable {

var category:String
var birthDate:Date
var switch:Bool
var weightNew: [Weight]
var weightOld: Array<Double>
var createdAt:Date
var itemIdentifier:UUID
var completed:Bool

func saveItem() {
DataManager.save(self, with: itemIdentifier.uuidString)
}

func deleteItem() { DataManager.delete(itemIdentifier.uuidString)
}

mutating func markAsCompleted() {
self.completed = true
DataManager.save(self, with: itemIdentifier.uuidString)
}

}

そして重量のため:

struct Weight {
var day:Int
var weight:Double
var type:Bool
}

weightOldをweightNewに変更した後、2つのエラーが表示されます。 -タイプ「アイテム」はプロトコル「デコード可能」に準拠していません -タイプ「Item」はプロトコル「Codable」に準拠していません

「var weightNew:[Weight]」を省略すると、機能します。何が起こっているのか、それを解決する方法がわからない...

回答:

回答№1については9

すべてがコーディング可能である必要があります。これまでのところ Weight 構造体はコード化できません。更新 Weight 同様にコーディング可能にしてから Item コーディング可能になります。