首页 > 解决方案 > 存储和检索 API 调用的数据

问题描述

我正在开发商店应用程序,我可以选择用户可以选择不同尺寸数量的多个项目(衣服)。

为此,我创建了结构,因此购物车中项目的最终结果如下所示:

let products = [
    Product(id: "1", quantities: [("1", 10), ("2", 10)]),
    Product(id: "2", quantities: [("1", 10), ("2", 10)]),
    Product(id: "3", quantities: [("1", 15), ("2", 20)]),
    Product(id: "4", quantity: 10),
]

我的问题是我在一个类中创建这个数组,然后应该将它发送到另一个类中的服务器。要点是用户可以继续使用应用程序,因此如果他添加新产品,我的产品数据应该始终存储和更新。

在用户完成创建订单后,在处理对 api 的调用的类中存储和检索此数组的数据的最佳方法是什么?

应该存储它 UserDefaults、Realm 还是声明全局变量?

我知道这可能是一个相当简单的问题,并且在 SO 上还有其他类似的问题,但是由于有很多方法可以完成这项任务,我想知道在我的特定情况下哪一个是最好的和“Swifty”。谢谢你的帮助!

标签: iosswiftdatabasereststruct

解决方案


那么这一切都取决于你的要求。如果您不关心用户进度,例如用户退出应用程序并再次打开应用程序,他们将失去进度并且必须重新开始,然后使用singleton. 创建一个单例类并将您的数组保存在那里。
如果您想保存用户进度,因此如果他们退出应用程序并再次打开,他们可以从离开的地方开始。然后与UserDefault.
现在,如果您有一个简单且小型的数据集,则使用UserDefaults,如果它是一个复杂且大型的数据集,则使用CoreDataRealm或您喜欢的任何其他数据库。


推荐阅读