Problem beim Zurücksetzen / Aktualisieren von NSManagedObjectContext und NSArrayController
Ich habe Probleme, die Benutzeroberfläche dazu zu bringen, externe Änderungen (die von einem anderen Prozess vorgenommen wurden) an einem SQLite-Datenspeicher wiederzugeben.
Ich habe einen ziemlich standardmäßigen Kerndaten-basierten NSArrayController / Tabellen-View. Meine App wird benachrichtigt, dass externe Änderungen an den Daten vorgenommen wurden. Zu diesem Zeitpunkt führe ich Folgendes aus:
[managedObjectContext reset]; // brute force, but data set is small
Das Problem ist, dass dadurch alle Daten aus der Tabelle gelöscht werden. Die arrangementObjects des Array-Controllers sind ebenfalls leer. Ich dachte eine Folge
[arrayController fetch:nil];
könnte helfen, tut es aber nicht. Wenn Sie eine Abrufanforderung für managedObjectContext ausführen, werden die Daten angezeigt und aktualisiert, sodass managedObjectContext über die Änderungen informiert ist.
Gibt es Hinweise, wie Sie nach dem Zurücksetzen "wiederherstellen" können? Oder vielleicht ist der Reset-Ansatz insgesamt falsch. In welchem Fall gibt es eine bessere Möglichkeit, die externen Änderungen zu laden?