iOS7 / Mavericks 应用程序 icloud coredata 首次同步慢

Posted

技术标签:

【中文标题】iOS7 / Mavericks 应用程序 icloud coredata 首次同步慢【英文标题】:iOS7 / Mavericks apps icloud coredata slow first sync 【发布时间】:2013-12-14 17:49:07 【问题描述】:

我在 appstore 中发布了一个 ios7 版本和 Mavericks OSX 版本的应用。 iCloud + 核心数据。

我在 iOS 版本中添加的对象需要 3 或 4 秒才能在 Mavericks 版本中可见。

我在 Mavericks 版本中添加的对象需要几分钟才能复制到 iOS 版本(没有进入后台,我强制 iOS 应用程序处于前台)。

NSPersistentStoreDidImportUbiquitousContentChangesNotification 需要几分钟才能在 iOS 中首次调用。为什么?有人在尝试同样的麻烦吗?谢谢

【问题讨论】:

对我来说也一样。我能想到的就是告诉你的用户要有耐心 看看这个链接,底部附近是一个使用 Core Data 和 iCloud 页面的 OS X / iOS 集成的链接,其中包括一个展示应用程序的视频。您看到的时间似乎很典型,您可以在一个部分中非常清楚地看到 OS X 几乎立即下载,而在 iOS 上,您必须打开文件才能触发下载。 ossh.com.au/design-and-technology/software-development/… 还有一节展示了如何在商店切换到 iCloud 商店并下载初始数据之前禁用 UI。 【参考方案1】:

这很可能是因为 iOS 和 Mac OS X 处理 iCloud 更新的方式不同。

Mac OS X 是“贪婪的”。一旦 iCloud 更新存在,Mac OS X 就会开始下载它。即使应用程序没有运行。即使该应用程序未安装在 Mac 上。即使该应用程序无法在 Mac 上运行。 (Mac 会为仅限 iOS 的应用下载 iCloud 数据)。 iOS 在收到来自应用的请求之前不会从 iCloud 下载任何内容。

这意味着 Mac 应用程序抢占了先机。当 Mac 应用程序要求提供数据时,它很可能已经存在。如果不是全部,它可能已经在下载。但在 iOS 上,该过程甚至在您请求之前都不会开始。

可能还有其他因素在起作用,但 Mac OS X 总是会在 iCloud 更新方面领先于 iOS。

【讨论】:

谢谢汤姆。这意味着没有补救措施? 我不知道,除了一般的东西,比如不同步比你真正需要同步的更多的数据。数据越少,时间就越少,因此如果有办法减少它可能会有所帮助。 我已将您的回复标记为已接受,但这意味着假设 icloud 现在仍然无法正常工作。日历应用必须同步所有数据,用户不能等待 2 分钟才能查看他们的活动……我认为对 iCloud 开发人员来说是个坏消息…… 当然可以,只是在不同设备上的功能不同。 iOS 设备的存储空间通常要少得多,网络连接速度较慢且可靠性较低,因此 Mac 风格的下载不是一个好主意。

以上是关于iOS7 / Mavericks 应用程序 icloud coredata 首次同步慢的主要内容,如果未能解决你的问题,请参考以下文章

ICL2019E

当应用程序在 Mavericks 下运行时,类别方法并不总是被调用

在 Mavericks 上编译 AVX2 程序

2015 ICL, Finals, Div. 2ABFGJK

代码符号 cmd 通过 Mavericks 10.9 上的原始文件更改应用程序的快捷方式

如何使用 Xcode 5.0.2 在 Mavericks 上签署应用程序?