核心数据实体多种构建配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了核心数据实体多种构建配置相关的知识,希望对你有一定的参考价值。

我有3个构建配置,调试,发布和开发。对于开发,我创建了一个带有新的bundleID,产品名称等的新Scheme,这样我就可以在手机上看到哪一个是DEV和DEBUG。

我正在使用Core Data和DEBUG与原始的bundleID一切正常,但是当我切换到使用开发一个时,当我尝试创建一个名为的新实体时出现错误:

NSEntityDescription.insertNewObject(forEntityName: "MyEntity", into: managedContext)

我得到的错误:

Could not cast value of type 'NSManagedObject_MyEntity_' (0x600002d62b20) to 'AppName_DEV.MyEntity' (0x102bf9368).

似乎它试图从我的“AppName DEV”方案获取MyEntity类而不是“AppName”。我找不到任何构建设置,我可以指出它使用相同的模型?

关于如何使用多个构建配置的核心数据的任何想法?

答案

好的,我发现了问题。由于我试图恢复最初用swift 2编写的一个非常旧的应用程序,我想到我可能会仔细检查数据模型是如何创建的。经过几个小时的修改核心数据设置过程后,我改变了两件事,最终让它发挥作用。

1.)在.xcdatamodeld文件中,在Data Model Inspector的右侧,确保你有Module字段EMPTY我有我的AppName Inside,这与原始目标名称相同。

2.)我将@objc(EntityName)添加到我拥有的NSManagedObject子类中。

  • 当然我清理了项目,从模拟器中删除了应用程序并再次安装。

如果你有这样的问题,希望你会帮助你,祝你好运!

以上是关于核心数据实体多种构建配置的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:如何删除关系中的实体

NSArray 到核心数据项

错误3004:从行开始映射片段时出现问题

实体框架核心 DbContext 和依赖注入

OroPlatform:覆盖核心实体表单构建器

核心数据食谱问题