ios - 存储和检索 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”。谢谢你的帮助!
解决方案
那么这一切都取决于你的要求。如果您不关心用户进度,例如用户退出应用程序并再次打开应用程序,他们将失去进度并且必须重新开始,然后使用singleton
. 创建一个单例类并将您的数组保存在那里。
如果您想保存用户进度,因此如果他们退出应用程序并再次打开,他们可以从离开的地方开始。然后与UserDefault
.
现在,如果您有一个简单且小型的数据集,则使用UserDefaults
,如果它是一个复杂且大型的数据集,则使用CoreData
,Realm
或您喜欢的任何其他数据库。
推荐阅读
- amazon-web-services - 防止特定角色更改 aws 资源上的特定标签
- python - #包括
CMake 项目 Visual Studio 2019 windows 10 - flutter - 找不到“pubspec.yaml”
- python - 如何在 PyQt5 的 QMdiArea 中打开和关闭我的子窗口?
- linux - Linux 中进程的净使用率 (%)
- java - com.couchbase.client.core.error.FeatureNotAvailableException:不能使用 createAsDeleted 子文档标志
- javascript - 从 ModuleB 导出到 ModuleA 的类的对象如何访问 ModuleB 中定义的全局未导出变量?
- html - 对齐标题、段落和图像
- gnuplot - 如何在 Gnuplot 中重命名“fit.log”?
- django - Django order_by() 不能与 distinct() 一起使用