【问题标题】:Core Data error: Failed to load model, 'An NSManagedObject of class 'MyApp.Item' must have a valid NSEntityDescription核心数据错误:无法加载模型,“MyApp.Item 类的 NSManagedObject 必须具有有效的 NSEntityDescription
【发布时间】:2021-03-28 06:29:28
【问题描述】:

我创建了一个没有 coredata 的 Swift 项目,只是稍后添加一些。我将以下代码从真实模板复制到我的项目 AppDelegate 并创建了我的 coredata 模型文件。但是,一旦我使用上下文创建了一个 coreData 对象,我就得到了:

CoreData:错误:无法加载名为 coredatatemplate 的模型

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“类“MyApp.Item”的 NSManagedObject 必须具有有效的 NSEntityDescription。

我不得不四处寻找问题所在,因为我已经完成了以下操作:

  • 我的自定义实体具有与 coredata 文件匹配的相同类名和实体名
  • 我为Module 选择了Current Product Module
  • 我为Codegen 选择了标准Class Definition

(如果您遇到同样的问题,请检查以确保这些都正常。)

问题依然存在,我找不到根本原因。

【问题讨论】:

    标签: swift core-data


    【解决方案1】:

    解决方案:

    我的问题是模板代码使用了与我的 CoreData 文件不同的名称。

    在我的 AppDelegate 中:

    // MARK: - Core Data stack
    
    lazy var persistentContainer: NSPersistentContainer = {
        
        let container = NSPersistentContainer(name: "DataModel")
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
            if let error = error as NSError? {
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
        return container
    }()
    

    使用name: "DataModel",我必须更改它以匹配我的项目中的DataModel.xcdatamodeld

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多