在 Swift 中持久存储大量数据

Posted

技术标签:

【中文标题】在 Swift 中持久存储大量数据【英文标题】:Storing large amounts of data persistently in Swift 【发布时间】:2018-03-01 18:25:42 【问题描述】:

我目前正在制作一个需要持久存储大量数据的应用程序,其中大部分数据包含在自定义类中。

我习惯于使用 UserDefault 来存储数据,但我了解到 UserDefault 不能很好地处理大量数据。我有哪些选择,是否可以使用 UserDefault 将其全部存储?

这款游戏是一款足球经理游戏,我有 30 支球队,每支球队大约有 25 名球员,每个球员都有一长串变量列表,比如比赛、进球、俱乐部等需要在每场比赛后存储

【问题讨论】:

用户默认值还不错,但您可以使用一个文件(或多个文件)或数据库。这真的取决于您的需求。 不,不要在 UserDefaults 中存储数据。 如果您提供有关数据的更多详细信息,您将获得更好的答案。 @nspavlo 为什么?使用 Swift 4,您应该使用新的 Codable 功能,而不是旧的 Objective-C NSCoding。 参见例如:***.com/q/16407594/1187415、***.com/q/32951538/1187415、***.com/q/24970074/1187415、***.com/q/35762561/1187415 【参考方案1】:

请查看 Core Data,这是一个 Apple 框架,它可以帮助您做到这一点:持久存储大量数据。苹果有大量的文档。您可能想从这里开始:

Core Data Programming Guide

【讨论】:

核心数据也很复杂。有时只使用文件会更好。这取决于用例。【参考方案2】:

我建议使用Realm。它抽象了使用 SQLite 的复杂性,并且比 Core Data 更容易。

https://realm.io/docs/swift/latest/

【讨论】:

以上是关于在 Swift 中持久存储大量数据的主要内容,如果未能解决你的问题,请参考以下文章

用于存储大量标志集的非常大的持久容器

数据持久化

在 Swift 中存储天气预报数据

从 api 检索大量数据并在 UICollectionView Swift 中使用它

Redis数据库基础

Redis数据库基础