核心数据 - 更改属性类型

Posted

技术标签:

【中文标题】核心数据 - 更改属性类型【英文标题】:Core Data - Changing attributes type 【发布时间】:2016-11-17 22:28:26 【问题描述】:

我有一个项目,我正在使用核心数据。

我有一些实体,带有属性。当我开始项目时,我选择了一些属性,现在我想更改它们的类型(例如 Int 到 String)。所以我做到了。

问题是,我遇到了错误......

我检查了代码,我认为一切正常。 我什至删除了整个实体并创建了一个新的名称,但它不起作用。

我怎样才能成功地改变它?

【问题讨论】:

你遇到了什么错误? 您可能遇到了数据库不匹配问题。从测试设备中删除您的应用程序并重新编译/安装。将来,尤其是部署后,需要研究迁移数据库。 【参考方案1】:

您可以通过创建新版本来使用代码数据迁移..

【讨论】:

【参考方案2】:

要更改数据类型,您需要创建一个新版本的数据库,您不能只是简单地修改它,因为这样每次您更改某些内容时,您的用户都必须删除并重新下载您的应用程序。 Here 你可以阅读如何做到这一点。

【讨论】:

【参考方案3】:

您在其上运行应用程序的模拟器或设备仍会“记住”旧类型和数据。只需按住应用程序并按“X”即可将其删除。当你在 XCode 中按下 play 时,它将使用新的数据类型重新安装应用程序。

【讨论】:

以上是关于核心数据 - 更改属性类型的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSInferMappingModelAutomaticallyOption 更改核心数据中的属性类型

更改某些实体中某些属性的类型后如何迁移核心数据模型?

在核心数据中进行大量迁移后尝试保存数据

核心数据迁移:更改持久存储类型

核心数据属性类型列表?

映射核心数据模型属性类型