NSFetchedResultsController - Bei der Erstellung eines Objects nur eine Nachricht.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSFetchedResultsController - Bei der Erstellung eines Objects nur eine Nachricht.

    Hallo!

    Ein NSFetchedResultsController liefert die Daten um z.B. alle Objekte vom Typ/Entität "Buch" in einer TableView anzuzeigen. Der Delegate des NSFRC wird mit controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: über alle Änderungen informiert. Soweit alles OK.

    Wenn ich nun aber eine neues Objekt erzeuge löst dies direkt eine ganze Reihe von Benachrichtigungen aus:

    Quellcode

    1. // --> NSFetchedResultsChangeInsert
    2. Book *newBook = [NSEntityDescription insertNewObjectForEntityForName:@"Book" inManagedObjectContext:managedObjectContext];
    3. // --> NSFetchedResultsChangeUpdate
    4. newBook.title = @"Sonstwas";
    5. // --> NSFetchedResultsChangeUpdate
    6. newBook.author = @"Sonstwas";
    7. ...


    So müsste die TableView ja beim Setzen jeder einzelnen Property aktualisiert werden. Gibt es eine elegante Möglichkeit das zu verhindern und beim Erstellen eines Objektes nur eine NSFetchedResultsChangeInsert zu erhalten nachdem das Objekt mit all seinen Eigenschaften vollständig erstellt und gesetzt wurde? Ich könnte newBook als iVar implementieren und dann prüfen ob die Nachrichten den NSFRC dieses Buch betreffen. Ist das der Fall wird nur NSFetchedResultsChangeInsert beachtet, nicht aber NSFetchedResultsChangeUpdate. Wirklich elegant finde ich das aber nicht. Da dies ja sicher kein spezielles Problem ist sondern jedes mal auftritt. wenn ein NSFRC die Erzeugung eines Objektes beobachtet gibt es hierfür ggf. schon eine bekannte und besser Lösung?