Создание нескольких объектов в Core Data с помощью ScanningDocumentViewController Swift 5/Swift UI
Я пытаюсь создать сканер, который может извлекать имена и идентификационные номера с листа и назначать их как новые объекты в Core Data. Используя макет SwiftUI и реализуя структуру UIViewControllerRepresentable, которая создает класс VNDocumentCameraViewController, я смог вызвать класс TextRecognizer, который успешно извлекает имена и идентификаторы из листа и помещает их в массив новых объектов.
func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
guard scan.pageCount >= 1 else {
controller.dismiss(animated: true)
return
}
let recognizer = TextRecognizer(cameraScan: scan)
recognizer.configureOCR()
recognizer.processImage(scan.imageOfPage(at: 0), withCompletionHandler: completionHandler)
controller.dismiss(animated: true)
print("Document camera view controller did finish with ", scan)
}
Затем я пытаюсь сохранить каждый новый объект в Core Data в цикле For внутри класса TextRecognizer.
func createPerson() {
guard self.people.count > 0 else { return }
for person in people {
let newPerson = Person(context: self.managedObjectContext)
newPerson.name = person.name
newPerson.idNumber = person.idNumber
newPerson.id = UUID()
do {
try self.managedObjectContext.save()
print("Person Saved.")
} catch {
print(error.localizedDescription)
}
}
}
После закрытия сканера список людей успешно создан, но при сохранении в Core Data я получаю следующую ошибку для каждого человека в списке людей, и мой список остается пустым.
"Операция не может быть завершена. (Ошибка Foundation._GenericObjCError 0.)"
Я также попытался передать контекст управляемого объекта через каждый класс и структуру, но это все равно не помогает.
@Environment(\.managedObjectContext) var managedObjectContext
Любая помощь в выполнении этой работы с использованием SwiftUI будет принята с благодарностью.