Я получаю такую ошибку:
2018-09-08 17:53:36.795035+0200 Movie Roulette[826:263749] [error] error: Failed to load model named ett CoreData: error: Failed to load model named ett 2018-09-08 17:53:36.796536+0200 Movie APP[826:263749] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'MovieData''
Может быть, кто-то из вас поможет мне решить эту проблему. Я искал и читал, что мне нужно создать 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)")
}
}
Эта проблема может возникнуть только в случае изменения названия модели, здесь, в AppDelegate
.
let container = NSPersistentcontainer(name:"thisMayChanged")
container.loadPersistentStores......
в аварии ясно
CoreData: error: Failed to load model named ett
и название проекта: Movie APP
Movie APP[826:263749]
вы изменили исходное имя на ett, так как по умолчанию оно должно быть Movie_APP
убедитесь, что объект с именем MovieData содержит титул ??
Спасибо за вашу помощь. Я решил эту проблему. Иногда мне приходится просто читать некоторые ошибки более 1 раза :-D
Несвязанный, но никогда не
guard
AppDelegate
. Принудительно развернуть его. Ваше приложение даже не дойдет до этой строки, еслиAppDelegate
отсутствовал.