核心数据实体多种构建配置
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子类中。
- 当然我清理了项目,从模拟器中删除了应用程序并再次安装。
如果你有这样的问题,希望你会帮助你,祝你好运!
以上是关于核心数据实体多种构建配置的主要内容,如果未能解决你的问题,请参考以下文章