核心数据& iCloud限制每个实体的项目数 - 潜在的同步问题

时间:2012-12-13 12:54:27

标签: iphone ios core-data icloud core-data-migration

我目前正在开发一个使用核心数据的应用程序,并希望使用iCloud。我有一个问题 - 我的应用程序有一个配置文件实体,其中一切都属于它。

我想将它与iCloud同步,因此它也适用于其他设备,例如iPad。我有一个问题,并在下面的场景中描述:

情景1

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

我如何解决这个问题?以下是一些想法,但我有点困惑在哪里继续

  • 选项1是检查他们是否启用了iCloud - 并提示他们 他们以前用过这个应用程序?
  • 选项2观察配置文件对象并将两者合并在一起(冒险 动)
  • 选项3不要使用iCloud - (不要真的想这样做)

任何提示或想法都会很棒。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你真的希望能够处理#2。除了您概述的场景之外,还有各种其他方式可能导致两台设备不同步。

也就是说,在检测到两组竞争数据时,您可以询问用户他们想要保留哪一个。这对用户来说非常恶劣 - 人们通常不喜欢做出涉及摧毁一堆新创建数据的选择。