【问题标题】:iCloud sync with app using sqlite database - IOSiCloud 使用 sqlite 数据库与应用程序同步 - IOS
【发布时间】:2012-09-12 12:16:44
【问题描述】:

我正在构建通用应用程序。在我的应用程序中,我使用的是 sq-lite 数据库。我想将我的本地数据与 iCloud 同步,以便在 iPhone 中安装应用程序的任何其他用户都可以将数据同步到他的手机/Ipad。

我在许多发现 iCloud 与代码数据同步但我使用的是 sq-lite 的地方进行了相关搜索。

他们是否有任何方式来执行此操作。

提前致谢。

【问题讨论】:

  • 谁能帮我解决这个问题。我在实现它时遇到了麻烦。因为我的整个项目都在使用 sq-lite,最后我无法将我的数据库转移到 coredata。
  • 您必须手动提出同步方案/协议。 icloud 在这里表现得像一个水桶,而且很安静。哑的。 CoreDataa 确实带有现成的同步协议,但在较低级别它不存在
  • 尝试通过 iCloud 同步 SQLite 数据库而不使用 Core Data 之类的东西将充满困难。想想 SQLite 是如何工作的——你更新个人记录——以及 iCloud 是如何工作的——在文件级别——你会发现将它们结合起来很困难。 Core Data 通过稍后合并的事务文件来做到这一点。重新创造自己将是……具有挑战性的。
  • 请参考this 问题及其答案。

标签: objective-c ios sqlite icloud


【解决方案1】:

您最好的办法是实现 Core Data 以便能够与 iCloud 同步。根据我的研究,如果不使用 Core Data,没有方便的方法可以将 SQLite 数据库与 iCloud 同步。使用它获得的优势不仅仅是访问数据。实施 Core Data 可以帮助您更有效地处理数据,因为它为对象关系映射提供了一个成熟的框架。它确实有一些限制,例如模式更改如何使现有存储无法访问。但是,它在支持对象持久性等领域也很出色。总的来说,它只能帮助您使用它,尤其是在与 iCloud 同步方面。

有多种方法可以开始将您的数据库转换为 Core Data。一种方法是在拥有模型后手动修改 Core Data 生成的 SQLite 数据库。您可以通过 Xcode 中的 Organizer 查看 /AppData/Documents 中生成的数据库来确定要更改的内容。从那里可以很简单地将 SQLite 数据复制到新数据库。虽然 Apple 不推荐这种方法,因为它们可能会更改 Core Data 模式,但它可以提供一种轻松迁移现有数据集的方法。另一种方法是编写代码在应用程序内的数据存储之间进行转换。如果您愿意,您甚至可以同时维护 SQLite 和 Core Data 这两个实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2014-12-26
    • 2019-12-30
    • 2011-10-20
    • 2016-06-30
    • 2014-01-05
    相关资源
    最近更新 更多