Ich habe ähnliche Beiträge wie diesen durchgesehen, aber keiner hat mein Problem beantwortet.
Wie bei CoreDataBooks verwende ich ein separates MOC für das Hinzufügen und Bearbeiten von Artikeln und beobachte die entsprechenden Benachrichtigungen, etwa so:
- (void)addControllerContextDidSave:(NSNotification*)saveNotification {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
// Merging changes causes the fetched results controller to update its results
[context mergeChangesFromContextDidSaveNotification:saveNotification];
NSLog(@"merging changes in rootview");
}
Wenn ich speichere, wird es korrekt angezeigt. Das Debuggen der Benachrichtigung zeigt den richtigen Kontext, und das Debuggen des Kontexts zeigt das gerade hinzugefügte Element. Auch die Protokollnachricht wird ordnungsgemäß ausgedruckt. Aber es passiert nichts. Keine der delegierten Methoden des NSFetchedResultsController Feuer, noch ist die Tabelle Ansicht aktualisiert.
Ich habe versucht, den Cache zu löschen oder zu löschen. Ich habe versucht reloadData
auf die tableView, aber nichts. Wenn ich die App beende und neu starte, wird sie gut angezeigt.
UPDATE: Die Meldung enthält tatsächlich den richtigen Kontext, da sie object
die den richtigen Artikel enthält, aber die userInfo
Hash hat keinen Inhalt:
userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}
Es sieht also so aus, als ob die Benachrichtigung keine Änderungen enthält, obwohl sie den richtigen Kontext mit dem geänderten Element hat .... hmmmm.