向核心数据添加数据时出现问题-nil不是合法参数

时间:2018-09-08 15:57:02

标签: swift core-data

我收到此错误:

  

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

也许有些人可以帮助我解决这个问题。我搜索并阅读了我必须创建一个NSManagedObjectContext的信息。我已经在func中创建了它,但是仍然出现此错误。

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)")
    }
}

1 个答案:

答案 0 :(得分:2)

仅当型号名称更改时,才会出现此问题,这里AppDelegate

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

在崩溃中很明显

  

CoreData:错误:无法加载名为 ett

的模型

,项目名称是Movie APP

  

电影APP [826:263749]

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