Я пытаюсь выполнить простой запрос на выборку моего TrainingSessionHistory
(объекта coredata) в одном из моих представлений SwiftUI, но получил Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
struct TrainingHistoryView: View {
var trainingSession : TrainingSession
init(trainingSession : TrainingSession) {
self.trainingSession = trainingSession
let fetchRequest = FetchRequest(fetchRequest: TrainingSessionHistory.getBy(nb: 2, myTrainingSession: self.trainingSession))
print(fetchRequest.wrappedValue) // -> crash this EXC_BAD_INSTRUCTION
}
TrainingSessionHistoryExtension: создание запроса на выборку
static func getBy(nb : Int, myTrainingSession : TrainingSession) -> NSFetchRequest<TrainingSessionHistory>{
let request:NSFetchRequest<TrainingSessionHistory> = TrainingSessionHistory.fetchRequest() as! NSFetchRequest<TrainingSessionHistory>
//request.predicate = NSPredicate(format: "trainingSession == %@", myTrainingSession)
request.fetchLimit = nb
let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
request.sortDescriptors = [sortDescriptor]
return request
}
Я не понимаю, что случилось плохо в запросе:
Править : Fixing
Замена на
let req = TrainingSessionHistory.getBy(nb: 2, myTrainingSession: self.trainingSession)
self.alternativeContext.performAndWait {
do {
let result = try req.execute()
print(result)
}catch {
print(error)
}
}
, где alternativeContext
определить в делегате выглядят так:
lazy var alternativeContext: NSManagedObjectContext = {
let context = persistentContainer.newBackgroundContext()
return context
}()
Благодаря { ссылка }
Все работают, но все еще не понимают, почему метод "FetchRequest.wrappedValue ()" не работает.