SwiftUI中的手动核心数据请求

时间:2020-02-28 04:10:59

标签: core-data swiftui

鉴于@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”

我缺少什么配置?

0 个答案:

没有答案