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

3
我目前正在开发一个具有大型数据库的应用程序。可以将该应用程序视为类似于TripAdvisor的方式:多个城市具有不同的数据库,每个数据库大小在5、10、20、30 MB之间。我的整个应用程序都基于这些数据:每个视图都需要其中的一部分。
我遇到了处理这个巨大数据块的困难。我目前正在使用CoreData:我认为它是一个很好的工具,对于离线模式来说,它绝对非常有效。问题是,我无法真正将其与“在线”模式相结合。如果用户由于某种原因不想存储数据,我不确定该如何处理数据。只需将其分配到变量中,最终会被释放掉,还是有更好的方法来处理数据?目前,我将其存储到CoreData中,但没有保存它:我知道这绝对不是一个好的管理方式。我该如何实现这一点?如何处理在线数据并在用户希望离线时简单地将其存储?

你的问题非常令人困惑。如果用户没有下载数据,那么它怎么会一开始就在设备上呢?“问题是”之后的所有内容似乎都相互矛盾,对我来说毫无意义。也许你可以提供更多信息重新表述你的问题,或者更精确地说明你想要实现什么。 - Jody Hagins
我知道我的问题有点混淆,对此感到抱歉。我的意思是用户不会存储数据,当然他会下载它。我认为这是一个很大的区别。问题在于,一些用户希望将数据存储在手机上以供离线使用,而另一些用户则不希望(内存不足等)。这就是我的问题所在。我该如何处理这两种不同的存储方法? - el-flor
你可以有条件地使用内存存储或文件存储作为持久化存储协调器(甚至可以同时使用两者)。当然,如果允许太多对象在存储中存在,你将面临耗尽所有内存的风险,但我假设你已经有一种方法来限制对象数量,如果用户在此模式下工作。 - Jody Hagins
1个回答

0

选项1:

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

选项2:

数据经常更改,并且用户需要频繁更新:与上述相同。此外,在服务器上发送通知(即推送通知)给应用程序,告知服务器有新数据。在应用程序中收到通知后,下载并保存数据到您的数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接