teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

UUID

2019/12/05 08:39

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,2 +1,22 @@
1
1
  `Todos.self`と書いていますが、そのJSONは配列ではありません。
2
- また、Todo.idに相当するものがJSON内にありません。
2
+ また、Todo.idに相当するものがJSON内にありません。
3
+
4
+ # デコード時にUUIDを生成する
5
+
6
+ ```swift
7
+ struct Todo: Codable, Identifiable {
8
+
9
+ //追加分だけ
10
+ private enum CodingKeys: String, CodingKey {
11
+ case t1, t2, t3
12
+ }
13
+
14
+ init(from decoder: Decoder) throws {
15
+ let values = try decoder.container(keyedBy: CodingKeys.self)
16
+ id = UUID()
17
+ t1 = try values.decode(Times.self, forKey: .t1)
18
+ t2 = try values.decode(Times.self, forKey: .t2)
19
+ t3 = try values.decode(Times.self, forKey: .t3)
20
+ }
21
+ }
22
+ ```