回答編集履歴
1
サンプルソース追加
answer
CHANGED
@@ -6,4 +6,24 @@
|
|
6
6
|
Swift|Tuple(タプル)型をDictionary(辞書)型に変換
|
7
7
|
[https://qiita.com/TouMotonori/items/0002784fc9deb04c5d25](https://qiita.com/TouMotonori/items/0002784fc9deb04c5d25)
|
8
8
|
|
9
|
-
あとは変換した辞書を配列に入れてそれをUserDefaultに格納すれば行けると思います。
|
9
|
+
あとは変換した辞書を配列に入れてそれをUserDefaultに格納すれば行けると思います。
|
10
|
+
|
11
|
+
----
|
12
|
+
追記、サンプルソースを載せておきます。
|
13
|
+
|
14
|
+
```swift:
|
15
|
+
let list: [(title: String, time: String)] = [("AA", "BB"), ("CC", "DD")]
|
16
|
+
|
17
|
+
// タプルの配列を辞書の配列へ変換
|
18
|
+
let saveData: [[String: Any]] = list.map { ["title": $0.title, "time": $0.time] }
|
19
|
+
|
20
|
+
UserDefaults.standard.set(saveData, forKey: "list")
|
21
|
+
|
22
|
+
if let loadData = UserDefaults.standard.object(forKey: "list") as? [[String: Any]] {
|
23
|
+
// 辞書の配列をタプルの配列へ変換(エラー処理が乱暴ですが)
|
24
|
+
let list2 = loadData.map { (title: $0["title"] as! String, time: $0["time"] as! String) }
|
25
|
+
|
26
|
+
print(list) // [(title: "AA", time: "BB"), (title: "CC", time: "DD")]
|
27
|
+
print(list2) // [(title: "AA", time: "BB"), (title: "CC", time: "DD")]
|
28
|
+
}
|
29
|
+
```
|