使用核心数据时获取错误

时间:2017-05-11 22:15:52

标签: ios swift xcode core-data

我对Core Data比较了解,在运行以下代码时会出现错误:

代码:

let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
var loadedSources = [Sources]()

do {
    loadedSources = try context.fetch(Sources.fetchRequest())
} catch {
    fatalError()
}

错误:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSFetchRequest could not locate an NSEntityDescription for entity name 'Sources'

问题:

但是,Sources是我的数据模型中我的实体的名称,所以我不确定为什么会发生这种异常。除了这个例外,我没有运行时错误。我打算以错误的方式取货?

1 个答案:

答案 0 :(得分:0)

检查:

检查managedObjectContext是否有效persistentStoreCoordinator。如果没有,那就是问题

print("persistentStoreCoordinator = \(managedObjectContext.persistentStoreCoordinator)")

可行的解决方案:

设置managedObjectContext.persistentStoreCoordinator

说明:

  • 托管对象模型包含所有实体描述(实体名称,属性,用于实体的类等)
  • 托管对象上下文就像一个便笺簿,您可以在其中更改记录。
  • 持久性协调器与不同的商店,托管对象模型协调,并为托管对象上下文提供统一的数据视图。
  • 如果托管对象上下文没有有效persistentStoreCoordinator,那么托管对象上下文将无法从模型中获取实体描述。

参考: