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