几年前,Apple 发布了 Core Data 应用程序的 iCloud 同步功能。然后我使用新的 Apple 机制发布了一个适用于 iPad/iPhone/MAC 的应用程序,具有共享模型。
事情并没有像预期的那样发展。同步机制有时不起作用。例如,就我而言,最近几个月,我的 3 台设备很少能顺利完成同步。上传对象一般工作正常。但是新的或删除的对象的下载过程通常会崩溃。
Apple 不久前发布了一种强制设备重新下载模型的所有对象 (NSPersistentStoreRebuildFromUbiquitousContentOption) 的方法,该方法通常可以正常工作,但这不是可接受的解决方案。
我的问题:是否有人已经完成让 iCloud + Core Data 正常工作? iOS 9+El capan下运行iCloud+CD怎么样,有经验吗?
我正在评估迁移到新的 CloudKIT API,但我不喜欢在设备离线时自行管理对象上传的想法。指示模型更改的推送通知新机制是否正常工作?
谢谢
最佳答案
这是我这几个月来深入研究的一个问题,恐怕没有一个明确的答案。
根据我的经验,我可以告诉你:
我使用的是 1.0 版本,它是开源的,支持 iCloud 作为其可能的后端之一(而 2.0 版,付费,支持更多);几天后,我获得了与自动重复数据删除的可靠同步(您必须提供一个 uniqueIdentifier 属性才能使其工作,但我已经有了一些东西......)。
我还没有弄清楚的唯一问题:有时(我会说是 10 个中的 1 个)对象在编辑或删除时不会立即同步,但在添加另一个对象时它总是在另一台设备上,编辑或删除:当这些延迟发生时,没有任何东西丢失并且所有内容都已为我“自动”处理,但是,我仍然希望所有内容始终立即同步。
Ensembles 也有一个很好的调试日志记录,你会喜欢来自 vanilla CD+iCloud 的东西。
如果你想尝试一下,你应该看看这些资源:
我还没有尝试过这最后两个解决方案,因为我最后的攻击计划是尝试 Ensembles,如果它对我不起作用,则采用这些方法。由于 Ensembles 对我来说非常好,我不需要尝试它们,但它们看起来还是很稳固的。
最后一个让我感到困扰的想法是:在 2015 年的 WWDC session 中,没有提到 Core Data + iCloud。对我来说,这对我们选择的同步解决方案来说意味着厄运。
希望这可以帮助。
关于core-data - 今日 iCloud + 核心数据(2015 年 7 月 10 日),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31331435/