iCloud +核心数据 - 何时知道为iCloud核心数据存储播种?

Jas*_*son 6 iphone synchronization core-data ios icloud

我正在努力在我的iPhone应用程序中实现iCloud核心数据同步.我正在研究用户工作流程,我遇到的问题是试图弄清楚我的应用何时应该将数据"播种"到iCloud.这可以在两种使用情况下发生:(1)当首次安装应用程序并且我想要使用一些预加载的数据播种时,或者(2)如果预先存在的客户下载iCloud更新,并且他们的现有数据应该是上传到iCloud.在每种情况下,我将在应用程序中有一个"种子库",我将从中读取并将数据上传到iCloud.

问题是,我如何知道数据是否已经播种?一种选择是在播种完成后从设备中删除种子存储,以便下次启动应用时,它将知道它不需要再次播种.

但是,如果商店已经从不同的设备播种了怎么办?是否有某种我可以在iCloud中检查的标志,它会告诉我数据不应该播种?或者,当当地种子商店存在时,我是否被迫总是播种数据,然后重复数据删除?这将导致问题,因为初始种子数据(来自应用程序在安装后的初始启动)是用户可删除的,因此如果他们(1)在他们的iPhone上安装应用程序,然后删除默认数据集,然后(2)在他们的iPad上安装应用程序,那么默认的数据集将被重新上传一次.

我刚刚遇到的另一个选择是,当用户安装应用程序或打开iCloud时,我可以问用户:您是否已经上传了数据?您想用本地数据替换iCloud中的任何数据吗?如果他们说是,那么它将核对iCloud的数据存储,然后用本地数据重新播种.然而,问题在于它会产生用户错误的可能性 - 这是我不希望用户搞砸的事情.

有什么想法吗?