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

Posted

技术标签:

【中文标题】合并两个持久化存储 icloud 存储和非 icloud 存储【英文标题】:merge two persistent store icloud store and non icloud store 【发布时间】:2014-01-28 06:36:38 【问题描述】:

我有一个 ios 应用程序,其中一半的用户希望使用 iCloud 在设备之间同步一些数据,而另一半则不想。出于这个原因,我将 Core Data(启用了 iCloud)的 sqlite 文件放在应用程序文档目录中。登录 iCloud 后,iCloud 同步运行良好。但是,如果用户未登录。但如果用户未登录,则同步数据不会与 icloud 数据合并。事务日志显然没有被创建,因为用户没有使用 iCloud。但是,用户可能会在以后开始使用 iCloud。出于这个原因,我认为我需要创建第二个“后备”持久存储,在未登录 iCloud 时使用它。如果用户稍后登录,我会将后备存储与启用 iCloud 的存储合并。我的问题是,有人知道我如何轻松地将后备(非 iCloud)存储与启用 iCloud 的存储合并。其次,就永久存储位置而言,是否有人有更好的设计?任何想法表示赞赏。谢谢,

【问题讨论】:

【参考方案1】:

查看此链接以获取支持使用本地或 iCloud 商店并处理与 iCloud 之间的迁移的示例应用程序。 http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/

【讨论】:

感谢链接,我会检查并提供反馈。 hey duncan thax for the help ..... 你能告诉我如何在 icloud 中上传和检索 sqlite 文件并用当前本地 sqlite 文件替换 sqlite 文件吗 很想这样做,但我真的不明白您要做什么,而示例应用程序中尚未完成。你看过视频吗?您是否安装并运行了示例应用程序?您是否更改了各种 iCloud 设置以查看文件如何移入和移出 iCloud 以及如何在设备之间同步?如果是这样,那么您究竟希望您的应用做什么与示例应用不同? 我看过视频,它很好而且很有帮助,但现在我只想将我的 sqlite 数据库上传到云上进行备份....当用户按下恢复时,它会从 icloud 获取 sqlite 数据库并用 icloud 版本替换本地 sqlite 文件。如果你能帮我做到这一点,谢谢。 Apple 可能会因为您的应用程序未遵循其存储指南而拒绝您的应用程序。我建议您将文件放在本地 /Documents 目录中,然后让用户打开 iCloud 备份。这样所有文件都将被备份。让您的应用使用示例应用使用的相同方法制作备份副本,并编写一些代码来显示文件列表,让用户选择要恢复的备份文件。 iCloud 文档和数据不适用于备份。

以上是关于合并两个持久化存储 icloud 存储和非 icloud 存储的主要内容,如果未能解决你的问题,请参考以下文章

切换 icloud 帐户时创建持久存储时应用程序崩溃

将 iCloud 迁移到本地持久存储

使用 Core Data 和 iCloud 添加持久存储时涉及 PFUbiquityPeer 的异常

Swift - 向 Core Data 添加启用 iCloud 的持久存储

在 iOS 7 中禁用 Core Data 中的 iCloud(也就是将持久存储文件迁移到本地)

无法从 iCloud 迁移永久存储