问题描述
我的 SwiftUI ContentView 中有以下代码
struct ContentView: View {
@State private var search = ""
@State private var selectedBookID: Int64? = 0
@FetchRequest(entity: Books.entity(),sortDescriptors: [NSSortDescriptor(keyPath: \Books.bokName,ascending: true)])
var books: FetchedResults<Books>
var body: some View {
NavigationView {
vstack {
HStack {
NavigationLink("New book...",destination: BookView(isNew: true)).padding(.leading)
Spacer()
NavigationLink("Authors...",destination: AuthorView())
NavigationLink("Genres...",destination: GenreView()).padding(.trailing)
}.padding(.vertical)
TextField("Search...",text: $search).padding(.horizontal)
List(books,id: \Books.bokID,selection: $selectedBookID) { book in
NavigationLink(book.bokName!,destination: BookView(isNew: false)).buttonStyle(PlainButtonStyle())
}
}
}
}
}
并且它在应用程序启动期间失败,并出现错误“任何模型中的 NSEntityDescriptions 都没有声明 NSManagedobject 子类‘Books’,因此 +entity 被混淆了。你加载了你的 NSManagedobjectModel 了吗?”。 它适用于同一应用程序中的所有其他视图。 请注意,这是 macOS 应用程序。 谢谢。
解决方法
我找到了方法 - 只需从 ContentView 中取出 @FetchRequest 部分并将其放入如下所示的额外结构中
cnt