iOS - 如何处理在线/离线数据

标签 ios database core-data

我目前正在开发一个具有大型数据库的应用程序。将该应用程序想象成与 TripAdvisor 类似的方式:具有不同数据库的多个城市,每个数据库在 5、10、20、30 MB 之间。我的整个应用程序都基于此数据:每个 View 都需要其中的一部分。

我很难找到处理这一庞大数据 block 的正确方法。我目前正在使用 CoreData:我认为它是一个很棒的工具,而且对于离线模式,它绝对可以很好地工作。 问题是,我真的无法将它与“在线”模式结合起来。如果用户出于 X/Y 原因不想存储数据,我不确定应该如何处理数据。 只需将它分配到无论如何都会被释放的变量中,或者有更好的方法来处理数据吗? 现在我将它存储到 CoreData 中而不保存它:我知道这绝对不是管理它的好方法。我怎么能做到这一点? 处理在线数据然后在用户也希望离线时简单存储数据的最佳方式是什么?

最佳答案

选项 1:

数据始终是静态的/不经常更改数据: 你应该有在线数据。您可以通过 webservice 获取数据并将其存储到本地数据库(即核心数据)。例如:圣经、古兰经应用。

选项 2:

数据变化频繁,用户需要经常更新:同上。此外,从服务器向服务器发送通知(即推送通知)到服务器有新数据的应用程序。在应用程序中收到通知后,下载数据并将其保存到数据库中。

关于iOS - 如何处理在线/离线数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106673/

相关文章:

ios - iCloud 和 NSFileWrapper : Showing as 2 different files in Settings

ruby-on-rails - Ruby on Rails form_for 发布到数据库不适用于一列,但适用于同一表中的其他列

php - MySQL 如何连接两个不同数据库中的两个表?

core-data - 核心数据关系删除规则 - Nullify + Cascade

iphone - 使用 Core Data 时如何覆盖属性上的 getter?

ios - proximityMonitoring 可能无法按预期工作

ios - Swift 协议(protocol)和多态性

objective-c - iPad 上的多个呈现 View Controller 和旋转

mysql - 查找 mysql 数据库模式中使用的内存百分比的查询是什么?

ios - AlamofireImage 下载到 CoreData