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

问题描述 投票:0回答:1

我有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 core-data entities buildconfiguration
1个回答
0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.