Я пытаюсь извлечь данные из Core Data и отобразить их в UITextFields с помощью Swift.Я думаю, что я успешно сохранил в Core Data, используя этот код:
func insertUserData() {
let user = UserData(context: managedObjectContext)
user.full_name = nameTextField.text!
user.address = addressTextField.text!
user.phone_number = phoneTextField.text!
user.email = emailTextField.text!
do {
try managedObjectContext.save()
print("Saved Successfully!")
} catch {
print(error.localizedDescription)
}
}
, где UserData - это имя объекта в модели Core Data, а managedObjectContext
:
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
Теперь япытаюсь отобразить сохраненные данные в UITextFields в другом ViewController, используя этот код:
func loadProfileData() {
let entityDescription = NSEntityDescription.entity(forEntityName: "UserData", in: managedObjectContext)
let request: NSFetchRequest<UserData> = UserData.fetchRequest()
request.entity = entityDescription
do {
let userInfo = try managedObjectContext.fetch(request as! NSFetchRequest<NSFetchRequestResult>)
let userInformation = userInfo as! NSManagedObject // I'm getting crash here: Cast from '[Any]' to unrelated type 'NSManagedObject' always fails
nameField.text = userInformation.value(forKey: "name") as? String
addressField.text = userInformation.value(forKey: "address") as? String
phoneField.text = userInformation.value(forKey: "phone_number") as? String
emailField.text = userInformation.value(forKey: "email") as? String
} catch {
print(error.localizedDescription)
}
}
Отчет о сбое:
libsystem_kernel.dylib`__pthread_kill:
0x2105a70fc <+0>: mov x16, #0x148
0x2105a7100 <+4>: svc #0x80
-> 0x2105a7104 <+8>: b.lo 0x180a6b11c ; <+32>
0x2105a7108 <+12>: stp x29, x30, [sp, #-0x10]!
0x2105a710c <+16>: mov x29, sp
0x2105a7110 <+20>: bl 0x180a607d4 ; cerror_nocancel
0x2105a7114 <+24>: mov sp, x29
0x2105a7118 <+28>: ldp x29, x30, [sp], #0x10
0x2105a711c <+32>: ret
Есть предложения, пожалуйста, чтобы решить эту проблему?Любой другой лучший подход?Спасибо за ваше время и усилия.Ответы с примерами кода очень ценятся.