2

我正在更新一个本地核心数据驱动的应用程序以支持 iCloud。我预计的一个挑战是围绕我所谓的“库存对象”——应用程序在首次启动时提供的种子数据,99% 的用户将对其进行自定义。

库存对象

Item A
Item B

定制对象

Tomatoes
Potatoes

如果用户随后在新设备上首次启动应用程序,我认为默认行为将是重新创建库存对象,这些对象将与来自 iCloud 持久存储的自定义对象(项目 A、项目B、Tomatoes、Potatoes),导致用户体验混乱。

一种方法可能是在首次启动时同步检查 iCloud 数据,如果存在,则不创建库存对象。但是,用户可能在第一次启动时处于脱机状态,然后在第二次启动时,本地库存对象与 iCloud 自定义对象会发生同样不受欢迎的合并。

有没有办法为 iCloud 合并添加逻辑,以便来自云的自定义对象(西红柿和土豆)的到来可以指示我在本地库存对象(项目 A 和项目 B)被传送之前删除它们?

谢谢!

4

2 回答 2

0

为什么不通过不提供种子对象来避免这种情况呢?只需通过 UI 提示用户在首次启动时输入他自己的对象。询问她以前是否使用过该应用程序,并解释说在重新创建对象之前等待从 iCloud 同步可能是值得的。

于 2011-12-24T17:59:38.303 回答
0

我不确定这是否是最好的方法,但这就是我正在做的事情:

  1. 当用户选择启用 iCloud 时,我会检查他们的 iCloud 目录是否为空。
  2. 如果是这样,没问题;我将数据库迁移到启用了 iCloud 选项的新本地存储,以便所有现有数据都移动到云中。
  3. 如果不是,我检查本地数据库是否为空。如果是,我会清除所有库存对象并从云中获取所有内容。如果不是,我告诉用户当前应用程序无法将本地数据库与 iCloud 数据库合并,并要求他们删除数据(或重新安装),从而回避这个问题。
于 2012-01-03T07:35:44.330 回答