我的应用程序当前使用NSCoding存储持久性数据,但是我想切换到Core Data以利用其与iCloud的集成。问题在于该应用程序当前已在App Store上发布,而且恐怕一旦进行更改,我当前用户本地商店中的数据就会丢失。
从理论上讲,我应该能够执行以下操作:
测试是否存在NSCoding数据
将数据转换为核心数据格式
将核心数据用于将来的所有“保存”
...但是我还没有找到进行转换的任何文档。
有任何想法吗?还是我完全不在某个地方?
谢谢
最佳答案
CoreData进行了一些不错的自动迁移,但这是来自不同的CoreData存储。就您而言,您将必须编写自己的转换代码。
保留“旧”类,并取消存档“旧”商店(如果有)。然后,只需遍历存储中的对象,并创建其等效的CoreData。保存CoreData,将其关闭,然后重新加载以检查所有内容是否相同。然后,删除旧的存储文件。
唯一的缺点是您必须保留旧代码(至少足以取消存档旧对象格式)。
关于ios - 将iOS应用从NSCoding转换为Core Data,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10183445/