我有3个构建配置,即Debug,Release和Development。对于开发,我创建了一个新方案,其中包含新的bundleID,产品名称等,因此我可以在手机上看到哪个是DEV和DEBUG。
我正在使用Core Data,并且对于具有原始bundleID的DEBUG来说,一切正常,但是当我切换为使用Development时,尝试创建名称为新实体时会出错:
NSEntityDescription.insertNewObject(forEntityName: "MyEntity", into: managedContext)
我得到的错误:
Could not cast value of type 'NSManagedObject_MyEntity_' (0x600002d62b20) to 'AppName_DEV.MyEntity' (0x102bf9368).
似乎正在尝试从我的“ AppName DEV”方案而不是“ AppName”中获取MyEntity类。我找不到任何可以指向使用相同模型的构建设置?
关于如何在多个构建配置中使用核心数据的任何想法?
答案 0 :(得分:0)
好的,我发现了问题。由于我试图恢复一个最初用swift 2编写的非常老的应用程序,因此我想到我可能要仔细检查数据模型的创建方式。经过数小时的核心数据设置过程的修改,我改变了两件事,终于使它起作用。
1。)在.xcdatamodeld
右侧的Data Model Inspector
文件中,确保您拥有Module
字段 EMPTY AppName Inside,与原始目标名称相同。
2。)我将@objc(EntityName)添加到了我拥有的NSManagedObject子类中。
如果您有这样的问题,希望威士忌能为您带来帮助,祝您好运!