我有一个 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,我会在 ForEach 中得到它。
为什么会这样?