【问题标题】:What is considered too heavy for UserDefaults?什么被认为对 UserDefaults 来说太重了?
【发布时间】:2018-01-10 19:34:55
【问题描述】:

我正在构建一个简单的 iOS 应用程序,这将是我将在 Apple 的 App Store 上发布的第一个应用程序。在某一时刻,该应用程序会访问用户的联系人列表,并让他们选择他们想要保存为收藏夹的任意数量的联系人。

为了便于构建版本一,我目前正在使用 UserDefaults 来保存这些收藏夹。虽然它在我有限的测试中运行良好,但我知道 Core Data 和 CloudKit 是大型解决方案的稳定选择。

对于像我这样的应用程序,我只使用 UserDefaults 将选定数量的联系人保存为收藏夹,UserDefaults 是一个足够的解决方案吗?还是我应该过渡到更强大的东西,比如 Core Data 或 CloudKit?用户可以选择收藏的联系人数量没有限制,因此用户可能会一一选择所有联系人并尝试将其全部保存为收藏。

如果用户得到一部新手机并且由于 UserDefaults 在设备上是本地的而丢失了所有现有数据,那么很快就可以将此应用恢复到他们之前拥有的位置。

【问题讨论】:

  • The documentation 说“这些参数被称为 defaults,因为它们通常用于确定应用程序在启动时的默认状态或默认行为方式。”恕我直言,这不是放置任何模型对象的正确位置,无论它们有多“重”。
  • 仅供参考,我可能会将您推荐给iOS Storage Best Practices。不仅视频不错,而且里面也有相关文档的链接。
  • 非常感谢这两个链接!今晚我将观看有关 iOS 存储最佳实践的视频。
  • 我也会考虑使用 Realm 来持久化数据。

标签: ios core-data swift4 cloudkit userdefaults


【解决方案1】:

您可以根据自己的需要使用 CoreData 在本地存储喜欢的联系人以获取大数据。现在,当用户切换设备或删除应用程序时,所有数据都将被删除。因此,您可以与 cloudKit 或其他选项同步后端服务器。当用户将任何联系人添加为收藏夹时,该联系人将添加到核心数据以及后端服务器中。您可以在用户首次登录应用程序时同步此后端服务器数据,然后您无需再次同步。其他一切都按要求。

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多