使用iCloud导入更改的核心数据需要花费很长时间

时间:2015-07-06 10:04:36

标签: core-data icloud

在您对此问题进行投票之前,请注意我已经搜索过Google并在Apple开发者论坛上询问但没有解决方案。

我正在制作一个使用iCloud核心数据的应用。一切都设置得很好,应用程序将核心数据记录保存到ubiquity容器中的持久存储中,并将它们提取得很好。

我的问题是要测试两个设备之间的同步是否正常(在相同的icloud ID上),我依赖 NSPersistentStoreDidImportUbiquitousContentChangesNotification 来触发,以便我的应用程序(在前台)可以更新表格视图。

现在需要花费随机的时间。有时它需要几秒钟,有时甚至45分钟是不够的!我已经多次检查了我的宽带速度,一切都很好。

我在通知处理程序中有一个简单的NSLog语句,在触发通知时打印到控制台,然后继续更新UI。

在导入更改之前,这个随机的大等待时间,我根本无法测试我的应用程序!

任何人都知道在这里可以做些什么?

已经检出相关的帖子......

More iCloud Core Data synching woes

App not syncing Core Data changes with iCloud

PS:我的iCloud帐户中还有15 GB的可用空间。

1 个答案:

答案 0 :(得分:1)

不幸的是,使用Core Data + iCloud进行测试可能很困难,正是因为iCloud是异步数据传输,并且您对何时进行传输几乎没有影响。

如果您正在处理小的更改,通常只需10-20秒,有时会更快。但是更大的更改可能会延迟由系统批量上传。而且,如果您不断地使用新的更改(这在测试中很常见),它也可能会阻止传输。

你真的无法做到这一点。尽量保持测试数据尽可能小,并且不要忘记Xcode调试菜单项以强制iCloud在模拟器中同步。

iCloud文件同步的这一方面正在推动许多开发人员使用CloudKit,至少你有一个同步的通信线路,消除了一些不确定性。但是,设置CloudKit需要大量自定义代码,或者转向非Apple同步解决方案。