将iOS应用程序从NSCoding转换为Core Data

时间:2012-04-17 00:19:48

标签: ios core-data app-store icloud nscoding

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

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

  1. 测试是否存在NSCoding数据
  2. 将数据转换为核心数据格式
  3. 将核心数据用于所有未来的“保存”
  4. ...但我没有找到任何有关转换的文档。

    有什么想法吗?或者我完全离开某个地方?

    由于

1 个答案:

答案 0 :(得分:1)

CoreData做了一些不错的自动迁移,但这来自不同的CoreData商店。在您的情况下,您必须编写自己的转换代码。

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

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