前提
現在SwiftでiOSアプリの開発を個人でしています。
Swiftは4.2, 対象はiOS10,11です。
Swiftは独学で半年ほど書いています。
発生している問題
APIを叩いてサーバーからJSONを取得し、アプリ側にキャッシュとして保存しているのですが、CoreDataやファイルに直接保存したりUserDefaultsを使ったり、Realmを使ったりなどと、いろいろ方法があるようで、どれを選択すればいいか悩んでいます。
試したこと
とりあえず現在はアプリ内に1つしか存在しない、という前提のカートオブジェクトをこのように書いて、UserDefaultsに保存するという方法を取りました。
struct Cart: Codable { var items: [Item] = [] static func get() -> Cart { if let data = UserDefaults.standard.data(forKey: "cart") { let cart = try! JSONDecoder().decode(Cart.self, from: data) return cart } else { return Cart() } } // APIから取得したJSONをCartに変換して、新しいCartで既存のCartを上書きする。 func save() { let json = try! JSONEncoder().encode(self) UserDefaults.standard.set(json, forKey: "cart") }
APIから取得したJSONなどをアプリに保存する際に、ケースにもよるかと思いますが、パフォーマンスのよさであったり、スタンダードなやり方、方法を選択する基準などがありましたら、教えていただけると幸いです。
(Keychainに関してはSecureなデータをいれるという役割がはっきりしているかと思うので、今回の選択からは除外しています。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/15 16:12