我的应用的品牌计划是使用包含2个字符串的api响应设置的。
想象一下:{ primary: "#3eab5c", secondary: "#1fb3b7" }
我想缓存值,因此用户应该在没有连接的情况下打开我的应用程序,或者我的品牌api不可用,那么我可以继续使用正确的颜色进行渲染。
我的第一个想法是将它们作为键值对存储在UserDefaults
中,并在需要时检索它们。
我不确定这是否是最佳做法,也许我应该使用CoreData
来缓存原始响应?
如果CoreData
是最好的选择,我如何在这里缓存我的api响应?
答案 0 :(得分:0)
您可以简单地save/fetch
以UserDefaults
的形式Data
来回复。
struct Response: Codable {
var primary: String?
var secondary: String?
}
let response = Response(primary: "#3eab5c", secondary: "#1fb3b7")
//Saving
if let data = try? JSONEncoder().encode(response) {
UserDefaults.standard.set(data, forKey: "CachedResponse")
}
//Fetching
if let data = UserDefaults.standard.data(forKey: "CachedResponse") {
let response = try? JSONDecoder().decode(Response.self, from: data)
print(response)
}
您绝对可以使用CoreData
来存储您的回复。但是看来您的案子并不需要它。