Reputation: 125
my code is like the following,and I get a execute error : Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
struct NewWordsView: View {
@Environment(\.managedObjectContext) var context
var words:FetchedResults<WordFrequency>
@State var showDetail:Bool = false
@State var wordIndex:Int = 0
let bookName:String
init(bookName:String){
self.bookName = bookName
let fetchs = FetchRequest<WordFrequency>(entity: WordFrequency.entity(), sortDescriptors: [], predicate: NSPredicate(format: "bookName == %@", "bookName"))
print(fetchs.wrappedValue.count)//throw a execute error
words = fetchs.wrappedValue
}
Upvotes: 0
Views: 75
Reputation: 125
we can just define a @FetchRequest var first, and assign value later in init()
// @FetchRequest(entity: WordFrequency.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \WordFrequency.bookName, ascending: true)])
// var words:FetchedResults<WordFrequency>
@FetchRequest var words:FetchedResults<WordFrequency>
let bookName:String
init(bookName:String){
self.bookName = bookName
let fetchs = FetchRequest<WordFrequency>(entity: WordFrequency.entity(), sortDescriptors: [], predicate: NSPredicate(format: "bookName ==%@",self.bookName))
self._words = fetchs
}
Upvotes: 0