在 icloud 中存储 sqlite 数据库?

Posted

技术标签:

【中文标题】在 icloud 中存储 sqlite 数据库?【英文标题】:storing sqlite database in icloud? 【发布时间】:2012-02-17 08:00:00 【问题描述】:

是否可以在退出应用程序并打开应用程序时将 SQlite 存储到 iCloud 中?但是教程告诉只使用核心数据,这是不可能的 仅通过 Sqlite?

【问题讨论】:

【参考方案1】:

简短的回答是你不应该使用 SQLite 和 iCloud,教程是正确的。来自ios App Programming Guide,

只有当您的应用程序使用 Core Data 来管理该数据库时,才能将 iCloud 与 SQLite 数据库一起使用。不支持使用 SQLite 界面访问 iCloud 中的实时数据库文件,这可能会损坏您的数据库。

但是我不完全确定你想做你认为你想做的事。请记住,如果用户启用了到 iCloud 的设备备份,您的应用程序的文档目录将被备份。如果您打算将 iCloud 用作应用程序实例之间(例如用户的 iPhone 和 iPad 之间)或平台之间(以及 iOS 和 OS X 版本的应用程序)。

【讨论】:

我不能将 Sqlite 文件存储到 Document 目录中并备份到 iCloud 中,并且每当我需要时,我不能(本地)更新并再次存储到 icoud 中吗? 你为什么要这样做?如果它“本地”存储在 Documents 目录中并且用户正在备份到 iCloud,那么它已经备份到了 iCloud。您的应用程序无需将其单独存储在云中。使用 iCloud 的唯一原因是如果您想在不同设备上运行的应用程序的不同实例之间共享信息(或者随着 Mountain Lion 在不同平台上的到来)。如果您不这样做,则根本不需要 iCloud。【参考方案2】:

如果您还没有开始使用 sqlite 数据库操作,那么您最好使用核心数据。如果您非常想拥有 sqlite,而此时如果您无法切换到 coredata,那么请查看我的回复link。希望对你有所帮助。

【讨论】:

以上是关于在 icloud 中存储 sqlite 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

iCloud中的CoreData和照片问题[重复]

SQLite、iCloud,也许还有 Core Data——用于存储文件并与所有用户的设备共享它们?

合并两个持久化存储 icloud 存储和非 icloud 存储

iCloud 中基于 SQLite 的核心数据中的有序关系

iCloud + 预加载的 CoreData

将 Sqlite 数据库与 iCloud 同步?