CoreDataを利用してデータの保存を行おうとした際に起こったエラーです。
‘NSInvalidArgumentException’, reason: ‘+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name ‘MyClassName”
バージョン
Swift 4.2
Xcode 10.1
原因と解決方法
AppDelegate.swift内で以下のように記述していたのですが、これが原因だった様子。
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Model")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
let container = NSPersistentContainer(name: "Model")
この”Model”の部分をxcdatamodeldファイルのファイル名に一致させていなかったことが原因でした。
僕の場合は「Model.xcdatamodeld」という名前だったので、NSPersistentContainer(name: “Model”)としました。
コメント