Я использую только основной контекст основных данных в своем приложении. Я знаю, что основной контекст может быть запущен только основной поток.
Однако, когда я обновляю основной контекст внутри фонового потока, я не сталкиваюсь с каким-либо сбоем.
//Cloudkit operation
let zoneOperation = CKFetchRecordZoneChangesOperation(recordZoneIDs: zonesIDs, optionsByRecordZoneID: [zonesIDs[0]: options])
zoneOperation.recordChangedBlock = { (record) in
// This is background thread
print("Record has changed")
let date = record["date"] as! Date
//Fetching Managed Object Context from Coredata (Main Context)
if let migraine = migraine(OnDate: date, inContext: self.persistentContainer.viewContext) {
migraine.date = date
saveData(inContext: self.persistentContainer.viewContext)
}
}
Как мне выполнить сохранение основного контекста Coredata в фоновом потоке без сбоев?