我正在尝试在 SwiftUI 中的 ContentView 和 Core Data 之间使用 ViewModel。Xcode builder 运行应用程序,但我立即收到错误消息:线程 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) for var recList。
任何人都可以帮忙吗?
以下是我正在做的一个简单示例:
列表视图模型:
class ListViewModel: ObservableObject {
var recRequest: FetchRequest<Newdb>
var recList: FetchedResults<Newdb>{recRequest.wrappedValue} <-------- error appears here
@Published var records = [ViewModel]()
init() {
self.recRequest = FetchRequest(entity: Newdb.entity(), sortDescriptors: [])
fetchEntries()
}
func fetchEntries() {
self.records = recList.map(ViewModel.init)
}
}
视图模型:
class ViewModel {
var name: String = ""
init(db: Newdb) {
self.name = db.name!
}
}
内容视图:
struct ContentView: View {
@ObservedObject var listViewModel: ListViewModel
init() {
self.listViewModel = ListViewModel()
}
var body: some View {
ForEach(listViewModel.records, id: \.name) { index in
Text(index.name)
}
}
}