SwiftUI @FetchRequest вылетает в подпредставлении - PullRequest
0 голосов
/ 19 января 2020

Я вычисляю количество объектов в CoreData ManagedObject Элемент в представлении CountView в приложении MacOS (без Catalyst).
Первый прямой вызов работает нормально, секунда в месте назначения NavigationLists падает.

Что я делаю не так?

struct ContentView: View {
  @Environment(\.managedObjectContext) var moc
  @FetchRequest(entity: Item.entity(), sortDescriptors: [], predicate: nil) var items: FetchedResults<Item>

  var body: some View {
    NavigationView {
      VStack {
        CountView() // works fine
        NavigationLink("Count", destination: CountView()) //crashes
      }
    }
  }
}

struct CountView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Item.entity(), sortDescriptors: [], predicate: nil) var items: FetchedResults<Item>

  var body: some View
  { Text("Count: \(items.count) ").frame(maxWidth: .infinity, maxHeight: .infinity)
  }
}

Контекст устанавливается следующим образом в AppDelegate:

 func applicationDidFinishLaunching(_ aNotification: Notification) {
   let moc = persistentContainer.viewContext
   let contentView = ContentView().environment(\.managedObjectContext, moc)
...