CoreData:Ubiquity:使用本地存储:1 永远不会变成 0

Posted

技术标签:

【中文标题】CoreData:Ubiquity:使用本地存储:1 永远不会变成 0【英文标题】:CoreData: Ubiquity: Using local storage: 1 never becomes 0 【发布时间】:2013-10-09 10:18:24 【问题描述】:

我正在使用 ios6 的 CoreData+iCloud 将应用程序升级到 iOS7。根据 Apple 的 WWDC 视频,当 CoreData 准备就绪时,"CoreData: Ubiquity: Using local storage: 1" 将变为 "CoreData: Ubiquity: Using local storage: 0" iCloud 核心数据存储。

我已经在模拟器上成功测试了这个。有趣的是,这在我的 iPhone 5 上从未发生过。我在 设置 中检查了 iCloud 设置,但仍然没有运气。

下面的图片是来自 xCode 的 iCloud 调试面板的屏幕截图。有趣的是,有一个baseline.zip 文件我永远无法得到它当前。这应该是iOS6的iCloud中的僵尸文件……有关系吗?

感谢任何帮助。

谢谢。

【问题讨论】:

我遇到了这个问题。有时它会切换到“使用本地存储:0” 你等得够久了吗?可能需要一段时间。请查看下面的链接,其中我发布了示例代码和应用程​​序运行的视频。通常,iPhone 5 比模拟器或 iPad 从 iCloud 中获取和下载新文件所需的时间要长得多。 ossh.com.au/design-and-technology/software-development/… 我已经通过reset解决了这个问题... 我猜是Device的App的iCloud进入了一个不确定的状态,卡住了... 建议的解决方法: 1)通过关注support.apple.com/kb/HT5824reset . 2) 或者,只需从所有设备上删除应用程序和 iCloud 中的所有数据,重新开始 【参考方案1】:

发生这种情况的原因有几个。模拟器可能没有正确设置 iCloud,但你说它是,所以我会写下那个。另一个原因是您没有在 Target 的 Capabilities 中启用 iCloud。确保开关已打开。另一个原因可能是模拟器没有自动触发 iCloud 同步。尝试去 Debug->Trigger iCloud Sync,或者按下 Shft+Cmd+I。

编辑:如果你想使用别人的代码(我发现它是稳定的),看看这个 Github 项目:https://github.com/mluisbrown/iCloudCoreDataStack/blob/master/iCloudCoreDataStack/AppDelegate.m

【讨论】:

【参考方案2】:

当我的 iPhone 仅使用蜂窝网络时,我遇到了这个问题。如果我启用 Wifi,那么它可以工作。这是非常令人失望的!

【讨论】:

以上是关于CoreData:Ubiquity:使用本地存储:1 永远不会变成 0的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 本地数据存储

使用 RestKit 0.2 从 CoreData 获取本地数据

嵌套在容器日志目录中

是否可以使用RestKit将本地数据存储在Core data中而无需网络通信

Apple_Ubiquity_Message 到底是啥?

使用 Core Data 时是不是需要本地数组?