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)
}
Пожалуйста, попробуйте сделать то же самое. На всякий случай.