困っていること
構造体をUserDefaultに保存するこちらの記事を参考に単体の構造体をUserDefaultに保存することはできたんですが、配列で構造体を保持してUserDefaultに保存することができません
コード
コードはそのまま基本的に記事のものをお借りして配列でできないか試しています
構造体
struct Yasai: Codable { let name: String let price: Int }
保存
保存のところでencodeの中身を配列で保存したいので二次元配列にしたんですがだめでした(通常でも配列型式で渡すようです)
UserDefaults.standard.set(try? PropertyListEncoder().encode([[yasaiList]]), forKey:"yasai") UserDefaults.standard.synchronize()
取得部分
こちらもArray<yasaiList>のところを2次元配列にすればいけるのかと思うんですがArray<Array<yasaiList>>やArray<[yasaiList]>のような書き方をするとエラーになってしまってうまく取得することができませんでした。
if let data = UserDefaults.standard.value(forKey:"yasai") as? Data { let yasai = try? PropertyListDecoder().decode(Array<yasaiList>.self, from: data) print(yasai?.first) } else { print("失敗") }
配列の構造体をUserDefaultに保存する方法ご存知の方いたら教えてください、お願いします。
回答1件
あなたの回答
tips
プレビュー