核心数据实体重命名

Posted

技术标签:

【中文标题】核心数据实体重命名【英文标题】:Core Data Entity rename 【发布时间】:2013-03-11 16:37:45 【问题描述】:

我创建了一个名为“MyObject”的核心数据实体。然后我将实体重命名为“ThatObject”。但是每次我创建一个 NSManagedObject 子类时,它仍然会创建 .h/.m 文件作为 MyObject。

我将“MyObject”文件重命名为“ThatObject”,一切正常,但每次更改实体属性时都必须这样做,这很烦人。

知道如何解决这个问题吗?

【问题讨论】:

您的模型中是否正在进行任何版本控制? 我不知道。 【参考方案1】:

重命名实体时,请确保在数据模型检查器中同时重命名 NameClass。在我的项目中,如果两者都被重命名,则新的自动生成的 NSManagedObject 子类将使用新名称创建。

【讨论】:

哈!在“配置”下,它列出了实体和类。该类仍设置为“MyObject”。谢谢!【参考方案2】:

对于未来的读者:请注意模型版本,如果您的应用已经发布,更新应用可能会破坏用户设备上的数据库架构,从而导致启动时崩溃。 Core Data 可以自动为这个简单的案例找到一个迁移,你可以找到更多关于轻量级迁移的信息here。您基本上必须设置重命名 ID,以便 CD 知道什么被重命名为什么,即使在两者之间跳过版本。

【讨论】:

以上是关于核心数据实体重命名的主要内容,如果未能解决你的问题,请参考以下文章

将属性更改为不再是瞬态的 - 我可以通过轻量级核心数据迁移来做到这一点吗?

核心数据轻量级迁移属性重命名

重命名核心数据类

核心数据:重命名属性而不会对用户及其当前数据产生问题

核心数据:在获取时重命名属性

核心数据:仅添加或重命名一个属性时仍会发生迁移?