有关iCloud +核心数据的问题

我有一个应用程序商店,使用coredata作为存储。 我不想用iCloud同步作为新function来更新应用程序。 遵循苹果的示例代码,我设法让我的核心数据存储在设备之间同步。

但是,当某个设备上的应用程序中的任一iCloud同步处于closures/打开状态时,或者该应用程序已从设备中删除并重新安装时,我遇到了问题。 在这两种情况下,数据都不会被同步回设备,尽pipe第二个设备(没有被禁用/重新安装)可以正常使用。

我还发现,当我从所有设备上删除应用程序,然后重新安装时,所有存储都被完全清除。 通过我在控制台中得到了一些合并通知(甚至有些没有错误),我看不到在设备的本地存储没有数据。

浏览我的Mac上的移动文档文件夹,仍然会在我的应用程序的icloud存储中显示大量的事务日志。

即使从所有设备删除应用程序,并从头开始不会解决。 数据只能被同步到一个设备,或者根本不同步。

我想知道是否有什么我可以做的关于这种不一致的状态,创build时,只有一个设备是临时iCloud禁用,或从一个设备删除应用程序?

至于我的代码,它是来自苹果的收件人示例的1:1副本。

Daniel Pasco谈到了2012年NSConference会议上使用Core Data和iCloud的情况。该博客中的一些注释:

使用-com.apple.coredata.ubiquity.logLevel 3启动,在消息日志中获取垃圾邮件,说明Core Data和iCloud在做什么。

这个演讲的结论似乎是在这个阶段使用Core Data和iCloud确实没有做好准备。

他在Github上发布了一个更新的Core Data Recipes项目,这可能会或可能不会解决您的问题。

苹果公司看起来很容易,但是在将数据正确地播种到iCloud方面存在一些细微的差别,以及在不同设备上打开和closuresiCloud支持后会发生什么情况。

我实现了一个示例项目,演示了将ICloud支持添加到库式CoreData应用程序的简单方法。 这就是所谓的iCloudStoreManager,它在github上可用 。

在将iCloud支持添加到我自己的生产应用程序之前,我仍在testing它。 这是工作,但我看到意想不到的错误和延迟,当一个iPad 3的混合。 它的工作原理,但是拖延很长。

我还testing了iPhone 4,iPhone 4S和原来的iPad,这些设备的任何组合都能很好地满足我的经验。