2012-12-13 48 views
2

我目前正在开发一个使用核心数据并希望使用iCloud的应用程序。我有一个问题 - 我的应用程序有一个简介实体,其中的一切都落在它的后面。Core-Data&iCloud每个实体的项目数量限制 - 潜在同步问题

我想与iCloud同步,因此它也可以与iPad等其他设备一起使用。我有一个问题,但是在下面的场景描述:

方案1

用户使用他们的iPhone我的应用程序。创建一个配置文件并使用它一段时间。 然后他们得到一个iPad,第一次使用我的应用程序没有网络 - 应用程序将他们提示他们创建一个配置文件。 (用户没有真正想过已经这样做了)。然后他们在网络中第二天打开应用程序 - 他们现在是我的个人资料实体中的2个对象,有效地为同一个人。

我该如何解决这种情况?下面是一些想法,但我有点疑惑的地方继续

  • 选项1是检查它们已经启用iCloud的 - 和提示他们有 他们之前使用此应用的?
  • 选项2观看配置文件对象,合并两个在一起(危险 移动)
  • 选项3不要使用iCloud的 - (不要真正想要做到这一点)

任何提示或想法将是巨大的。

+0

我不认为这是一个干净的答案 - 这是我一直在努力 - 但我全部耳朵... –

+0

嗯同样 - 我花了一段时间绘制出想法.. – Dan

回答

0

你可以通过避免使用删除可用于核心数据的方法在外形实体插入重复记录。在配置文件实体调用delete中插入数据之前,将删除重复条目并插入新条目。

+0

感谢您的回复。这个* some *记录的问题可能会在中间丢失。据我所知,你无法对iCloud的合并事件发表意见吗? – Dan

+0

如何保留最近编辑过的副本?这肯定是用户想要坚持的。 – beev

0

你真的想要处理#2。除了您概述的情况之外,还有其他两种设备可能会失去同步的其他方式。这就是说,在检测两组竞争数据时,可以询问用户要保留哪一个。尽管如此,这种方式非常用户友好 - 人们通常不喜欢做出涉及摧毁一堆新创建数据的选择。

+0

谢谢。任何想法如何使用iCloud处理这个问题? – Dan

+0

您是否可以编写代码,当它看到两个配置文件实体时,按属性进行属性合并以根据需要进行合并?或者创建一个UI以允许用户选择? – Hunter