我正在编写一个包含本地数据库的应用程序。我想让用户能够在此数据库中为某些项目添加书签,并且每次更新应用程序(以及数据库)时这些书签都不会消失。这种情况下最好的解决方案是什么?
最佳答案
在应用程序重新启动时保留数据的最简单方法是使用 UserDefaults。在您的情况下,您可以将自定义数据类型存储在 UserDefaults 键中,如下所示:
- 初始化默认对象
let defaults = UserDefaults.standard
- 为您的数据创建自定义数据类型(需要可编码)
struct Bookmark: Codable {
let name: String
let url: String
}
struct Bookmarks: Codable {
let bookmarks: [Bookmark]
}
- 按如下方式保存数据
// data is of type Bookmarks here
if let encodedData = try? JSONEncoder().encode(data) {
defaults.set(encodedData, forKey: "bookmarks")
}
- 稍后检索数据
if let savedData = defaults.object(forKey: "bookmarks") as? Data {
if let savedBookmarks = try? JSONDecoder().decode(Bookmarks.self, from: savedData) {
print("Saved user: \(savedBookmarks)")
}
}
关于ios - 在应用程序更新期间在哪里持久存储用户数据(iOS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71977425/