我的应用根据Apples最新文档使用Core Data和iCloud,效果很好。我无法管理/理解的内容如下:
安装应用程序后,将设置数据库并填充一些初始数据。这适用于第一个设备。
在Core Data中设置数据库并且应用程序将安装在第二台设备(同一个iCloud帐户)上后,我需要避免再次加载初始数据。所以我的想法是,我怎么能弄明白,数据库是否已经在iCloud中可用了?
我搜索了很多并且发现了许多讨论,但至少没有一个适合iOS 7和8的解决方案(除了可以删除我不想要的重复记录之外)。
请让我知道您的想法,我们非常感谢任何建议(或我找不到的链接)!
答案 0 :(得分:1)
您不能只设置一个布尔值来检查初始数据,因为布尔值也需要同步,您可能无法及时得到它。您也无法检查初始数据,因为它还需要同步,并且可能无法及时到达。
但有几种可能性。
将初始数据放在未同步的单独持久性存储文件中。您可以拥有多个商店文件,并且可以将它们全部添加到持久性商店协调员。将初始数据放在一个未同步的存储文件中,并将所有其他数据放在同步的单独文件中。由于初始数据不会同步,因此不会有任何重复。您不能拥有从一个商店文件到另一个商店文件的关系,但您可以使用获取的属性来获得类似的内容。
继续将所有数据放在同一个文件中,但过滤掉重复项。将所有东西放在一个地方,重复是不可避免的,但你可以处理这个问题。您最终会等到重复项出现,找到它们并删除它们。需要这样做有点烦人,但如果你把所有东西放在同一个持久存储中,它真的是唯一的方法。我刚才在a blog post at my site中描述了这个过程,详细介绍了如何有效地完成这个过程。