我正在努力在我的iPhone应用程序中实现iCloud核心数据同步。我正在研究用户工作流程,我遇到的问题是试图找出我的应用程序应该将数据“播种”到iCloud的时间。这可以在两种使用情况下发生:(1)当首次安装应用程序并且我想要使用一些预加载的数据播种时,或者(2)如果预先存在的客户下载iCloud更新,并且他们的现有数据应该是上传到iCloud。在每种情况下,我将在应用程序中有一个“种子库”,我将从中读取并将数据上传到iCloud。
问题是,如何知道数据是否已播种?一个选项是在播种完成后从设备中删除种子商店,以便下次启动应用时,它将知道它不需要再播种。
但是,如果商店已经从其他设备播种了怎么办?我可以在iCloud中查看某种标志,它会告诉我数据不应该播种吗?或者,当本地种子商店存在时,我是否被迫始终种子数据,然后重复数据删除?这将导致问题,因为初始种子数据(来自应用程序在安装后的初始启动)是用户可删除的,因此如果他们(1)在他们的iPhone上安装应用程序,然后删除默认数据集,然后(2)在iPad上安装应用程序,然后再次重新上传默认数据集。
刚刚发生的另一个选择是,当用户安装应用程序或打开iCloud时,我可以问用户:您是否已经上传了数据?您想用本地数据替换iCloud中的任何数据吗?如果他们说是,那么它将核对iCloud的数据存储,然后用本地数据重新播种。然而,问题在于它会产生用户错误的可能性 - 这是我不希望用户搞砸的事情。
有什么想法吗?