应用程序从本地切换到远程存储时的iCloud通知

时间:2013-12-02 17:39:02

标签: ios iphone ipad core-data icloud

我正在基于核心数据的应用程序中实现iCloud支持。它运行良好,但我注意到你第一次运行应用程序的设备上有一个奇怪的行为。

我在设备A上运行应用程序并添加一些条目。我在设备B中安装应用程序,从我看到的调试:

2013-12-02 18:25:39.626 My App[256:3707] -[PFUbiquitySwitchboardEntryMetadata setUseLocalStorage:](754): CoreData: Ubiquity:  mobile~XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:myawesomeapp
Using local storage: 1

大约一分钟后:

2013-12-02 18:26:26.234 My App[256:1803] -[PFUbiquitySwitchboardEntryMetadata setUseLocalStorage:](754): CoreData: Ubiquity:  mobibile~XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:myawesomeapp
Using local storage: 0

我的所有参赛作品都出现在设备B

在此期间,应用程序无响应。没有崩溃,但我可以触摸到处但没有应用程序的响应。存储开关和所有数据出现后,应用程序可以正常运行。

现在问题是:有一种方法可以对用户说“等等,我正在检查iCloud并检索数据”

而且,我注意到只有在iOS7设备上运行应用程序时才显示上述调试消息。如果我在iOS 6.x上运行它,我就不知道发生了什么。

谢谢, 最大

1 个答案:

答案 0 :(得分:2)

查看WWDC 2013 Video Session about Core Data(需要的开发者帐户)。从第7分钟开始,就可以很好地解释这一点。

显式统计,第一次获取iCloud数据是同步的,因此您必须确保在单独的非UI线程中调用它。在iOS 7中,这应该是自动异步的。

如果重构iOS 7以利用新的 - 更简单的API - 也许是最好的选择。您可以在代码中设置一个开关,并根据设备运行的操作系统使用这两种方法。

消息Using local storage: 0/1将在第6分钟解释。