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

回答編集履歴

1

サンプルソース追加

2018/07/10 02:59

投稿

takabosoft
takabosoft

スコア8356

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
+ ```