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

标签 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 上运行它,我不知道发生了什么。

谢谢, 最大

最佳答案

查看 WWDC 2013 Video Session about Core Data (需要开发者帐户)。这在第 7 分钟左右开始解释得很好。

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

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

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

关于ios - 应用程序从本地存储切换到远程存储时的 iCloud 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20334447/

相关文章:

ios - 如何在swift中实现优化的多个计时器?

iOS:如何使用 AutoLayout 将一个 View 的中心与另一个 View 的底部对齐

ios - 在 CoreData 中存储 NSMutableAttributedString 的简单方法

iphone - UINavigationController 子类 navigationItem 忽略 -setLeftBarButtonItem

ios - CGContext 的背景图片

iphone - 如何防止Xcode更改按钮的颜色?

ios - iOS6 上的 GCDAsyncUdpSocket 出现 "Connection reset by peer"错误

iphone - 我最近发布的应用程序更新在 info.plist 文件中没有最新/正确的值

objective-c - 在 iPad 6.0 模拟器中运行应用程序时出现布局问题

iphone - iOS 开发 : After updating my iPhone 4 to iOS 4. 3 Beta 3,我的应用程序显示 "This game is not recognized by Game Center"