我制作了一款包含核心数据的应用。但现在,我想,如果用户丢失或更换他们的设备会怎样。假设他们得到一个新的并重新安装该应用程序。
获取之前的数据的最佳和最简单的方法是什么,将其存储在核心数据中的旧设备中。
你能否对此提出想法?
答案 0 :(得分:1)
对于单个设备和任何替换设备(如果损坏或丢失),只需备份到iTunes或iCloud即可。然后,您可以在必要时从该备份恢复。这适用于任何应用程序数据,而不仅仅是CoreData。
您的应用程序还可以包含将CoreData持久性存储文件复制到其他位置,然后从其他地方加载它的功能。这通常只是一个SQLite数据库文件,可以直接在设备之间进行复制。例如,将其复制到' Documents'目录然后通过iTunes抓取它,或通过电子邮件发送。然后您可以从某处读取它并将其写入持久存储文件位置(而CoreData不使用它)。这种方法对于只有一个应用程序的数据的时间点备份非常有用,该应用程序独立于您在iCloud / iTunes上获得的整个设备备份。它还使用户能够将其整个应用程序数据集发送给其他用户(如果有任何用途),或者将应用程序数据恢复到某个时间点,而无需恢复包括所有其他应用程序在内的整个设备。
所以我希望能回答你原来的问题。对于您在评论中的后续查询...
对于多个设备同时共享相同数据,有CloudKit:https://developer.apple.com/icloud/。但是,我不知道这是否适用于CoreData(我怀疑没有)。 (请注意,在iOS 10中不推荐使用CoreData自己的iCloud同步。)
还有第三方替代品,例如Realm:https://realm.io/。 Realm受到很多开发人员的高度推荐,并且是跨平台的。但它是CoreData的替代品,而不是与它兼容(所以不是你所要求的)。对于设备之间的数据同步,Realm会要求您在Mac OS X或Linux计算机上设置您自己的数据同步服务器(' Realm Mobile Platform')。设备需要能够随时通过互联网访问。
或者,您可以推出自己的解决方案,但为什么会这样?
答案 1 :(得分:1)
一种非常简单的方法是使用iCloud API并将所有数据存储在iCloud存储上。这种应用程序非常安全可靠。
答案 2 :(得分:0)
这就是iCloud的用途。正如rmaddy在评论中所说,您可以将核心数据库备份到iCloud。我还没有完成它,但我已经读过它。