ios - 在应用程序更新期间在哪里持久存储用户数据(iOS)?

标签 ios swift

我正在编写一个包含本地数据库的应用程序。我想让用户能够在此数据库中为某些项目添加书签,并且每次更新应用程序(以及数据库)时这些书签都不会消失。这种情况下最好的解决方案是什么?

最佳答案

在应用程序重新启动时保留数据的最简单方法是使用 UserDefaults。在您的情况下,您可以将自定义数据类型存储在 UserDefaults 键中,如下所示:

  1. 初始化默认对象
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)")
        }
    }
    

    更多信息herehere

    关于ios - 在应用程序更新期间在哪里持久存储用户数据(iOS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71977425/

    相关文章:

    ios NSError 类型

    ios - 更改 NSDate 格式

    ios - 如何在UITableView上更改Pull的文本颜色以刷新?

    swift - 打破网络请求中的循环( swift )

    swift - 为 Swift 3 和 Xcode 8 构建 Realm

    ios - SKTextureAtlas外部app.bundle

    ios - 基本注册页面 - iOS

    swift - Swift 中的主菜单

    ios - "Could not load NIB"子类化 FUIAuthPickerViewController 时

    ios - swift 错误 : Can't assign value of type UIColor to type CGColor