向 Core Data 添加数据时出现问题 - nil 不是合法参数
Posted
技术标签:
【中文标题】向 Core Data 添加数据时出现问题 - nil 不是合法参数【英文标题】:Problem while adding Data to Core Data - nil is not a legal parameter 【发布时间】: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)")
【问题讨论】:
不相关但从不guard
AppDelegate
。强行拆开它。如果AppDelegate
丢失,您的应用甚至不会到达这条线。
【参考方案1】:
这个问题只有在模型名称改变时才会发生,这里是AppDelegate
let container = NSPersistentcontainer(name:"thisMayChanged")
container.loadPersistentStores......
崩溃时很清楚
CoreData:错误:无法加载名为 ett
的模型
项目名称为Movie APP
电影APP[826:263749]
您将原始名称更改为 ett,默认情况下应为 Movie_APP
【讨论】:
确定名为 MovieData 的实体包含 title ?? 感谢您的帮助。我已经解决了这个问题。有时我应该只阅读1次以上的错误:-D以上是关于向 Core Data 添加数据时出现问题 - nil 不是合法参数的主要内容,如果未能解决你的问题,请参考以下文章
尝试将服务器内容同步到 Core Data 时出现问题 - Magical Record 插入过程非常慢
尝试对 ASP.NET Core 3.1 使用多个身份验证方案时出现异常
将可转换的 NSAttributedString 保存到 Core Data 时出现异常奇怪的崩溃
向sqlite添加数据时出现java.lang.NullPointerException(因为RadioGroup)[重复]