【发布时间】:2018-09-08 15:57:01
【问题描述】:
我收到此错误:
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)")
}
}
【问题讨论】:
-
不相关但从不
guardAppDelegate。强行拆开它。如果AppDelegate丢失,您的应用甚至不会到达这条线。