【问题标题】:Core Data Entities multiple build configurations核心数据实体多个构建配置
【发布时间】:2019-03-11 15:24:37
【问题描述】:

我有 3 个构建配置,调试、发布和开发。对于开发,我创建了一个带有新 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 类。我找不到任何可以指向它使用相同模型的构建设置?

关于如何在多个构建配置中使用核心数据有什么想法吗?

【问题讨论】:

    标签: swift core-data entities buildconfiguration


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      相关资源
      最近更新 更多