将iOS应用程序从NSCoding转换为核心数据

问题描述:

我的应用程序当前使用NSCoding存储持久性数据,但我想切换到Core Data以利用其与iCloud的集成优势。问题是,该应用程序目前正在App Store上,我担心,一旦我做出更改,我当前用户的本地商店上的数据将会丢失。将iOS应用程序从NSCoding转换为核心数据

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

  1. 试验NSCoding数据的存在
  2. 数据转换到核心数据格式
  3. 使用核心数据未来所有“拯救”

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

任何想法?或者我完全脱离了某个地方?

感谢

+0

您能工作吗?我发现自己处于类似的情况。 – icekomo 2016-09-09 04:34:14

CoreData做了一些不错的自动迁移,但来自不同CoreData商店之时。就你而言,你将不得不编写自己的转换代码。

离开“旧”类,并解除“旧”存储如果它在那里。然后,循环访问商店中的对象,并创建其CoreData等价物。保存CoreData,关闭它,然后重新加载它作为检查,以确保一切都是相同的。然后,删除旧的存储文件。

唯一的缺点是你必须保持旧的代码(至少足以解除旧的对象格式)。