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

質問編集履歴

2

下部にTask.swiftを追加させていただきました。ご指摘ありがとうございます!

2018/11/09 02:29

投稿

YuukiIbata
YuukiIbata

スコア15

title CHANGED
File without changes
body CHANGED
@@ -25,6 +25,8 @@
25
25
 
26
26
  ### 該当のソースコード
27
27
 
28
+ FirestoreTaskRepository.swift
29
+
28
30
  ```Swift4.0
29
31
  import Foundation
30
32
  import FirebaseFirestore
@@ -90,6 +92,74 @@
90
92
 
91
93
  ```
92
94
 
95
+ Task.swift
96
+
97
+ ```Swift4.0
98
+
99
+ import UIKit
100
+
101
+ class Task: Codable {
102
+ var id: String?
103
+ var title: String?
104
+ var note: String?
105
+ var latitude: Double?
106
+ var longitude: Double?
107
+
108
+ enum CodingKeys: String, CodingKey {
109
+ case title
110
+ case note
111
+ case latitude
112
+ case longitude
113
+ }
114
+
115
+ init(title _title: String) {
116
+ self.title = _title
117
+ }
118
+
119
+ init(data: [String: Any]) {
120
+ if let title = data["title"] as? String {
121
+ self.title = title
122
+ }
123
+ if let note = data["note"] as? String {
124
+ self.note = note
125
+ }
126
+ if let latitude = data["latitude"] as? Double {
127
+ self.latitude = latitude
128
+ }
129
+ if let longitude = data["longitude"] as? Double {
130
+ self.longitude = longitude
131
+ }
132
+ }
133
+
134
+ required init(from decoder: Decoder) throws {
135
+ let container = try decoder.container(keyedBy: CodingKeys.self)
136
+ self.title = try container.decode(String.self, forKey: .title)
137
+ self.note = try container.decode(String.self, forKey: .note)
138
+ self.latitude = try container.decode(Double.self, forKey: .latitude)
139
+ self.longitude = try container.decode(Double.self, forKey: .longitude)
140
+ }
141
+ func encode(to encoder: Encoder) throws {
142
+ var container = encoder.container(keyedBy: CodingKeys.self)
143
+ try container.encode(title, forKey: .title)
144
+ try container.encode(note, forKey: .note)
145
+ try container.encode(latitude, forKey: .latitude)
146
+ try container.encode(longitude, forKey: .longitude)
147
+ }
148
+
149
+ func toData() -> [String: Any] {
150
+ return [
151
+ "title": self.title!,
152
+ "note": self.note!,
153
+ "latitude": self.latitude!,
154
+ "longitude": self.longitude!
155
+ ]
156
+ }
157
+
158
+ }
159
+
160
+
161
+ ```
162
+
93
163
  ### 試したこと
94
164
 
95
165
  他のファイル情報が必要でしたらお教えいただけると幸いです。

1

画像に注釈を入れました(画像が大きくて申し訳ございません…)

2018/11/09 02:29

投稿

YuukiIbata
YuukiIbata

スコア15

title CHANGED
File without changes
body CHANGED
@@ -11,9 +11,16 @@
11
11
  Firestoreで取り組んでいる今回は配列に入ったタスクを1件ずつFirestoreに保存しています。
12
12
  上書き時はIDを使って上書きしていますが、コードをよく読むと読み出しているときにIDをタスクに保持するようになっていません。この解消方法をご教授いただきたいです。
13
13
 
14
+ 修正、削除前です
14
15
  ![修正、削除前](c772518402f907a2eb9a853e8085fed5.png)
16
+
17
+ 削除後も消えておりません
15
18
  ![削除後も消えておりません](095904b89bf31e062d003b1129b700f4.png)
19
+
20
+ 修正しようとすると…
16
21
  ![修正画面](5c811b196ca1f055ed5ab114ae9fca03.png)
22
+
23
+ なぜか増えます
17
24
  ![修正するとなぜか増えます](15d8c0670f1af320cbefc3257a0caf0c.png)
18
25
 
19
26
  ### 該当のソースコード