Ich versuche, eine Entität zu einer Gruppe hinzuzufügen, aber es wird nicht beibehalten, nachdem die Anwendung geschlossen wurde. Meine Beziehung sieht wie folgt aus:Kerndatenbeziehung, die nicht besteht
ich eine neue Aufgabe wie folgt zu erstellen:
guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else {
return
}
// 1
let managedContext =
appDelegate.persistentContainer.viewContext
// 2
let entity =
NSEntityDescription.entity(forEntityName: "Task",
in: managedContext)!
let task = NSManagedObject(entity: entity,
insertInto: managedContext)
// 3
task.setValue(cell.taskTextField.text, forKeyPath: "name")
// 4
do {
try managedContext.save()
} catch let error as NSError {
print("Could not save. \(error), \(error.userInfo)")
}
füge ich die Aufgabe einer Gruppe Entität wie folgt aus:
groups[0].mutableSetValue(forKey: "tasks").add(task)
Wo Gruppen ist ein NSManagedObject-Array, dessen Wert in viewDidLoad:
wie folgt geladen wird:
//1
guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else {
return
}
let managedContext =
appDelegate.persistentContainer.viewContext
//2
let fetchRequest =
NSFetchRequest<NSManagedObject>(entityName: "Group")
//3
do {
groups = try managedContext.fetch(fetchRequest)
} catch let error as NSError {
print("Could not fetch. \(error), \(error.userInfo)")
}
Die Gruppen füllen ordnungsgemäß, ich habe alle Gruppen, die ich erstellt habe. Aber keine Beziehungen sind vorhanden. Dies druckt nichts:
Dieser Code druckt die Aufgaben, sofern ich die App nicht öffne und schließe. Aus irgendeinem Grund bleiben die Daten nicht bestehen, wenn die App geschlossen wird. Irgendwelche Ideen? Danke
Speichern Sie den Kontext NACH dem Hinzufügen der Aufgabe zur Gruppe? Ich sehe es in Ihrem obigen Beispiel nicht. Dies muss getan werden. –
Nicht verwandt, aber bewache 'AppDelegate' nicht. Gezwungen, es auszupacken. Ihre App wird nicht gestartet, wenn die Klasse fehlt. – vadian