2015-10-13 30 views
3

我目前正在开发一个大型数据库的应用程序。按照以下方式将该应用视为与TripAdvisor类似:使用不同数据库的多个城市,每个城市的数量分别为5,10,20,30 MB。我的整个应用都基于这些数据:每个视图都需要它的一部分。iOS - 如何处理在线/离线数据

我很难找到正确的方法来处理这个庞大的数据。我目前正在使用CoreData:我认为它是一个很好的工具,对于离线模式,它绝对有效。 问题是,我不能真正将它与“在线”模式结合起来。如果用户不想为X/Y原因存储数据,我不知道该如何处理数据。 只需将其分配到将要发布的变量中,还是有更好的方法来处理数据? 现在我将它放入CoreData而不保存它:我知道这绝对不是管理它的好方法。我怎么能做到这一点? 处理在线数据的最佳方式是什么?如果用户也希望它离线,那么最好的办法就是存储它。

+0

你的问题很混乱。如果用户没有下载数据,那么设备上的数据如何开始? “问题是”后面的所有内容似乎都是矛盾的,对我来说没有任何意义。也许用更多的信息重新提出你的问题,或者更准确地说明你想达到的目标。 –

+0

我知道我的问题很混乱,对此感到抱歉。我的意思是用户不存储数据,当然他会下载它。我认为这是最大的区别。重点是有些用户会希望将数据存储在手机上以供离线使用,而其他用户则不会(内存不足等)。这是我的问题。我如何处理这两种不同的库存方法? –

+0

您可以为持久性存储协调器有条件地使用内存存储或文件存储(您甚至可以同时使用两者)。当然,如果您允许在商店中同时存在太多对象,那么您将冒着吃掉所有内存的风险,但是如果用户在此工作,我认为您已经有了限制对象数的方法模式。 –

回答

0

选项1:

数据总是静态的/没有改变的数据频繁: 您应该对在线数据。您可以通过webservice获取数据并将其存储到本地数据库(即核心数据)。例如:圣经,古兰经应用程序。

选项2:

数据变化频繁和用户需要频繁更新:与上面相同。此外,从服务器发送通知(我推送通知)到应用程序,该服务器有一个新的数据。在应用程序获取通知后,下载并保存数据到您的数据库。