FetchRequest невозможен внутри листа?

У меня есть приложение SwiftUI, в котором есть MainView, и это вызывает лист вроде

this:.sheet(isPresented: $showingSheetFilter) {
    FilterView()
}

FilterView выглядит так:

import SwiftUI

struct FilterView: View {

    @FetchRequest(
        entity: Category.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Category.title, ascending: true)
        ]

    ) var categories: FetchedResults<Category>

    var body: some View {
        List {
            ForEach(categories, id: \.self) { (cat: Category) in
                Text(cat.title!)
            }
        }.onAppear {
            print(self.categories.count)
        }
    }
}

Если я вызываю лист, я получаю Дамп:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

В файле onAppear. Если я удалю onAppear, я получу его в ForEach.

Почему это происходит?

1 ответ

Как я прокомментировал вопрос в моей среде, все работает нормально. Единственное различие, которое я вижу, заключается в том, что я передаю контекст в моем представлении на листе явно, как показано ниже.

Button("Test Sheet") { self.isSheet = true }
    .sheet(isPresented: $isSheet) {
        TestListView().environment(\.managedObjectContext, context)
}

Пожалуйста, попробуйте сделать то же самое. На всякий случай.

Другие вопросы по тегам