【问题标题】:Saving application data to IPad/iPhone将应用程序数据保存到 iPad/iPhone
【发布时间】:2011-11-17 21:32:23
【问题描述】:

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

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

  1. 它会很快在应用程序中建立内存
  2. 如果应用崩溃,它们将丢失数据

有什么想法可以解决这个问题吗?

【问题讨论】:

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


    【解决方案1】:

    使用 Core Data...Apple 有非常好的文档,看看吧!

    【讨论】:

    • 所以核心数据存储在设备磁盘中?
    • 有没有办法序列化一个对象并将其保存到核心数据中?比从核心数据中检索它并将其重新水合为原始对象?
    • 我不确定您所说的序列化是什么意思,但核心数据基本上将您的数据存储在类似系统的字典中。我建议阅读 Apple 文档以了解这个概念。
    • 是的,您可以使用 Transformable 类型来序列化一个对象,developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/…
    【解决方案2】:

    听起来您想在在线系统和设备之间同步数据。同步是一个很难完美工作的问题。如果您的 Web 服务与 REST 兼容,我将研究 RestKit 作为与您的在线系统通信并将该数据存储在 iPad 上本地的 Core Data 中的解决方案。

    最终你想通过本地数据库在线复制数据,如果它是大量数据,我会推荐 Core Data。 Core Data 本身就是一个复杂的框架,需要大量的理解。

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

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

    祝你好运!

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多