从实体删除属性后迁移CoreData时出错

时间:2015-11-12 21:08:14

标签: swift core-data database-migration

我的默认数据模型有一个属性(sectionNumber),我从实体中删除了(提示)。此实体在先前的数据模型中不存在。

重新创建映射模型后,我收到此错误(仅当我测试迁移时):

'NSInvalidArgumentException', reason: 'keypath sectionNumber not found in entity <NSSQLEntity Tip id=3>

我已经在项目的各处搜索了sectionNumber但是还没找到它......有谁知道我应该在哪里看?

2 个答案:

答案 0 :(得分:0)

每次更改模型时,它都是概念发布的一部分。在此概念版本的开头,您对模型进行版本控制,然后进行一组模型更改并创建关联的迁移计划(自动或映射模型)。部署此概念版本时,迁移将在模型版本之间起作用。

如果在部署之后对模型进行了更改并且没有启动新的概念版本 - 因此您不对模型进行版本化 - 核心数据将看到当前模型已更改但不知道如何。它无法从此恢复,默认操作是second_button_"get_the_id"

您需要回滚巡视更改并对模型进行版本控制。或者,您接受您正处于概念发布的中间(如果可能)并在重新安装之前删除应用程序......

答案 1 :(得分:0)

您可以通过以下步骤解决此问题..:

完成核心数据模型的更改后,将其保存。

appdelegate代码中.sqllite核心数据文件的第一个打印路径。

复制路径并打开查找器。

按Ctrl + G并粘贴该路径。去并删除.sqlite文件。

现在转到派生数据文件夹路径并删除该文件夹中的所有内容。

现在按alt并在产品菜单上选择clean build folder选项。

现在运行您的代码并享受..