iCloud数据备份和恢复策略



我不知道这种问题在这里是否合适,但我还是要问一下。

我有一个iOS iCloud核心数据应用程序,工作得很好(虽然我认为它确实需要一些同步调整),我正在考虑允许用户将数据库的副本保存到iCloud驱动器中的uiddocument。这将允许用户手动分割数据库,并只加载他们想要使用的部分,同时考虑到数据可能包含一些保险索赔数据,也可以让用户放心。

我正在权衡几个选项来允许这种情况发生。

选项1是创建一个基于iOS的保存和恢复过程,当触发时,将数据库(可能最多1000个对象)转储到NSDictionary对象的NSArray中(每行一个字典),然后将NSArray JSONize到NSData中,并将其保存在iCloud驱动器上的新uiddocument中。还原过程将列出要还原的可能档案,然后允许用户选择一个。还原过程将执行与保存过程相反的操作。

选项2是创建Mac应用程序来处理保存/恢复过程,这将允许用户在用户的Mac上保存档案。这似乎不那么困难,尽管它需要一组应用程序一起工作。该机制与选项1类似,但数据将进入标准Mac文件系统选择屏幕中指定的文件。

我个人想两者都做但在我开始之前我想确保没有比将整个SQL数据库转储到nsdictionary的NSArray更简单的方法。

一个复杂的因素是数据库中包含作为NSData的图像。我可以将NSData字符串化,添加到NSDictionary构建中,然后让JSON进程做它自己的事情。

我觉得这样做很好,但我想确保我没有忽视苹果的一些更简单的方法。

我想到的另一个想法可能是使用某种SQLite实用程序在一个会话中本地保存和恢复,然后通过iCloud在所有设备上复制结果。同样,听起来更像是Mac的答案,但我真的不知道。

iCloud支持同步CoreData数据库。更多信息请参阅本文。

此外,您可以考虑考虑CloudKit将这些数据直接存储在iCloud中,因此可以在多个设备上访问。

最新更新