鉴于@FetchRequest
不支持动态谓词(例如,我无法更新日历中的“月”并无法重新查询该月中计划的事件),我试图获取一个手动要求工作。
如果我不尝试创建动态谓词,@FetchRequest
已经可以使用,因此我假设核心数据已配置为可以正常工作。
在我的SceneDelegate
中,我有:
guard let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext else {
fatalError("Unable to read managed object context.")
}
let contentView = ContentView().environment(\.managedObjectContext, context)
并在我的AppDelegate
中:
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Transactions")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
如果我尝试在ContentView
中发出手动请求,例如:
let employeesFetch = NSFetchRequest<NSFetchRequestResult>(entityName: "Employees")
do {
let employees = try managedObjectContext.fetch(employeesFetch) as! [Employees]
} catch {
fatalError("Failed to fetch employees: \(error)")
}
这失败是因为`Exception NSException *“ + entityForName:nil不是用于搜索实体名称'Employees'的合法NSPersistentStoreCoordinator”
我缺少什么配置?