FetchRequest не возможно внутри листа? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть приложение 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 Ответ

0 голосов
/ 19 февраля 2020

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

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

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

...