将应用程序数据保存到IPad / iPhone

时间:2011-11-17 21:32:24

标签: iphone objective-c cocoa-touch ipad offline

我制作了一个企业通用(iphone / ipad)应用程序,它使用odata sdk与sql server数据库通信。一切都很好,工作正常。问题(实际上不是问题,但有些限制)是它是一个连接的解决方案,如果你想要检索或更新你必须连接到互联网的信息。

我现在正在尝试添加断开连接的功能。我的问题是,是否有一种方法可以将大量(相对较大)的序列化数据保存到实际设备中。我不想将它存储在应用程序中,因为

  1. 它会在应用程序中快速构建内存
  2. 如果应用崩溃,他们将丢失数据
  3. 关于如何解决这个问题的任何想法?

3 个答案:

答案 0 :(得分:3)

使用核心数据...... Apple拥有非常好的文档,请查看它!

答案 1 :(得分:2)

听起来您想在在线系统和设备之间同步数据。同步是一个非常难以完美运作的问题。如果您的Web服务与REST兼容,我会查看RestKit作为与您的在线系统进行通信并将该数据存储在iPad本地核心数据中的解决方案。

最终,您希望在本地使用数据库在线复制数据,如果数据量很大,我建议使用Core Data。核心数据本身就是一个复杂的框架,需要大量的理解。

有很多事情需要考虑,离线需要多少数据?你能执行增量同步吗?当远程移动时,如何移动数据以及在本地数据库中移动数据需要哪些步骤?如何检测到在线删除记录,因此需要在本地删除?用户可以在离线时编辑现有数据吗?你如何处理合并冲突(在线和离线编辑相同的记录)?您将需要考虑所有这些情况。

有些系统可以为您处理其中的一些,如果您的在线系统也处于开发阶段,您可以考虑CoucheBase,它有一个移动设备可以为您处理这个棘手的同步问题。

祝你好运!

答案 2 :(得分:1)