SwiftUI の Color は View の一種であり、単純なデータではないので Codable ではないのでしょう。
色名や RGB の値を取り出して保存する必要があるかと。
SwiftUIで、カスタムクラスがuserDefaultsで保存できません
タスクリストを作っています。下のコードのTaskListとTaskをForEachで表示します。
該当のソースコード
SwiftUI
1import SwiftUI 2 3struct Task: Identifiable { 4 var id: UUID 5 var taskName: String 6 var taskMemo: String 7 var taskURL: String 8 var isComleted: Bool 9 var flag: Bool 10} 11 12struct TaskList: Identifiable { 13 var id: UUID 14 var listTitle: String 15 var listColor: Color 16 var list: [Task] 17} 18 19class TaskLists: ObservableObject { 20 @Published var lists: [TaskList] = [TaskList(id: UUID(), 21 listTitle: "ListTitle", 22 listColor: .green, 23 list: [Task]() )] 24} 25
試したこと
TaskListsをCodableに準拠させたところ、エラーが出ました。
あなたの回答
tips
プレビュー