首页 > 解决方案 > 向 Core Data 添加数据时出现问题 - nil 不是合法参数

问题描述

我收到此错误:

2018-09-08 17:53:36.795035+0200 电影轮盘[826:263749] [错误] 错误:无法加载名为 ett CoreData 的模型:错误:无法加载名为 ett 的模型 2018-09-08 17:53:36.796536 +0200 电影应用 [826:263749] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用,原因:“+entityForName:nil 不是搜索实体名称“MovieData”的合法 NSManagedObjectContext 参数

也许你们中的一些人可以帮助我解决这个问题。我已经搜索并阅读了我必须创建一个 NSManagedObjectContext。我已经在我的函数中创建了这个,但我仍然收到这个错误。

func save(name: String) {
    guard let appDelegate =
        UIApplication.shared.delegate as? AppDelegate else {
            return
    }

    // 1
    let managedContext =
        appDelegate.persistentContainer.viewContext
    // 2
    let entity =
        NSEntityDescription.entity(forEntityName: "MovieData",
                                   in: managedContext)!

    let MovieDT = NSManagedObject(entity: entity,
                                  insertInto: managedContext)

    // 3
    MovieDT.setValue(name, forKeyPath: "titel")

    // 4
    do {
        try managedContext.save()
        movieArray.append(MovieDT)
    } catch let error as NSError {
        print("Could not save. \(error), \(error.userInfo)")
    }
}

标签: swiftcore-data

解决方案


这个问题只有在模型名称改变时才会发生,在这里AppDelegate

let container = NSPersistentcontainer(name:"thisMayChanged")
container.loadPersistentStores......

崩溃很明显

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

项目名称为电影APP

电影APP[826:263749]

您将原始名称更改为 ett 默认情况下它应该是Movie_APP


推荐阅读