2015-07-10 38 views
8

几年前,Apple发布了Core Data应用的iCloud同步。然后,我使用新的Apple机制以共享模式发布了iPad/iPhone/MAC应用程序。 事情并没有像预期的那样。同步机制有时不起作用。例如,就我而言,最近几个月很少通过我的3台设备同步结束。一般上传对象工作正常。但新的或删除的对象的下载过程通常会崩溃。 Apple在一段时间之前发布了一种强制设备重新下载模型中的所有对象(NSPersistentStoreRebuildFromUbiquitousContentOption)的方法,该方法正常工作,但这不是一个可接受的解决方案。iCloud + Core Data今日(2015年7月10日)

我的问题:有人已经完成让iCloud + Core Data正常工作吗?在iOS 9 + El capitan下运行iCloud + CD,有什么经验?

我正在评估迁移到新的CloudKIT API,但如果设备处于脱机状态,我不喜欢自我管理对象上传的想法。推送通知指示模型更改的新机制是否正常工作?

感谢

+0

iOS 9仍处于测试阶段,规格可能会日复一日地变化......今天的工作并不意味着明天它就会工作,直到第一个GM发布。 – Raptor

+0

我认为你还没有回答我的任何问题 – CommonWood

+0

我的想法是:我认为没有人会给出明确的答案,因为给定的答案可能会在任何一分钟内失效。 – Raptor

回答

8

这是我在过去几个月深入研究的一个问题,恐怕没有一个明确的答案。

这里就是我可以从我的经验告诉你:

  1. 如果你和我一样,不想与CloudKit,其工作可靠,但需要您手动处理许多同步的重新开始工作和将CKRecords转换为ManagedObjects,给予我一个很好的机会:Core Data和iCloud之间的层面确实在我的情况下工作,而CD + iCloud没有。 我使用的是1.0版本,它是开源的,支持iCloud作为它可能的后端之一(和版本2.0,付费,支持甚至更多);几天后,我得到了自动重复数据删除的可靠同步(您必须提供uniqueIdentifier属性才能使其正常工作,但我已经有了一些东西)。 我还没有想出的唯一问题是:有时(10个中的1个,我会说)对象在编辑或删除时不会立即同步,但当另一个对象是添加,编辑或删除:当这些延迟发生时,没有任何东西会丢失,所有事情都会“自动”处理,但我仍然希望所有事情都马上同步。 Ensembles还具有良好的日志记录功能,您可以从vanilla CD + iCloud中获益。 如果你想给它一个尝试,你应该在这些资源来看一看:

  2. 如果你有绝对的把握你不需要Core Data和iCloud之间的图层/第三方代码(我自己也这么认为,但我已经改变了我的脑海里,当我意识到我失去了三个月我的生活并没有什么回报),我已经在网上找到核心数据+ iCloud中的实现,看起来更有前途的是这些:

我还没有尝试过自己最后的两个解决方案,因为我攻击的最后的计划是尝试合奏,如果它没有工作对我来说,去与那些方法。由于Ensembles对我来说非常好,我不需要去尝试,但他们看起来也很稳固。

最后一个让我困扰的想法是:2015年的WWDC会议上没有提及Core Data + iCloud。对我而言,这对我们选择的同步解决方案意味着厄运。

希望这会有所帮助。

+1

+1合奏。就个人而言,我很久以前就放弃了苹果iCloud与Core Data的整合。它现在可以被修复,并且有些人声称它已经......但是我去了一个简单的解决方案,我翻身了自己,然后合奏并从未回头。这是苹果完全失败的少数几个领域之一,我完全放弃了这项技术。 Ensembles非常擅长做什么,即使您不需要它,您也会想要为升级付费。 –

+0

@JodyHagins我完全同意你的看法,我已经阅读了很多次,现在情况好转了,但是,我还没有找到一个真正可行的解决方案来实现它:如果现在没有那么糟糕,我只能想象几年前它有多可怕; )。我确认购买Ensembles 2.0的意愿,或者至少是为了支持这本书付出的代价是很强烈的,但是我正在一个非常紧凑的(不存在的)预算中开发一个爱好应用程序,所以我必须等待首先会在我推出时出售一些副本。 – cdf1982

+0

嗨cdf1982,据我所知第三方同步替代方案的问题是,他们不能在设备脱机的情况下运行,并最终与WIFI网络连接。那就是:想象你已经离线了,并且你添加了一个对象。然后,将手机放在口袋里,当你走路时,它连接到WIFI。有了iCloud + CD,我认为有一个系统队列会自动上传你的对象。但第三方同步机制不能。这是真的? – CommonWood

相关问题