0

我的应用程序目前使用 NSCoding 来存储持久数据,但我想切换到 Core Data 以利用它与 iCloud 的集成。问题是该应用程序目前在 App Store 上运行,我担心一旦我做出更改,我当前用户本地商店的数据就会丢失。

理论上,我应该能够做到以下几点:

  1. 测试是否存在 NSCoding 数据
  2. 将数据转换为核心数据格式
  3. 为所有未来的“保存”使用核心数据

...但我还没有找到任何有关进行转换的文档。

有任何想法吗?还是我完全不在某个地方?

谢谢

4

1 回答 1

1

CoreData 做了一些很好的自动迁移,但那是来自不同的 CoreData 存储。在您的情况下,您将不得不编写自己的转换代码。

留下“旧”类,如果存在“旧”存储,则将其取消归档。然后,只需遍历存储中的对象,并创建它们的 CoreData 等价物。保存 CoreData,关闭它,然后重新加载它以检查以确保一切都相同。然后,删除旧的存储文件。

唯一的缺点是您必须保留旧代码(至少足以取消归档旧的对象格式)。

于 2012-04-17T01:07:01.307 回答