1

Est-il possible de définir plusieurs propriétés d'un objet NSManagedObject et que l'appel NSFetchedResultsController appelle controllerDidChangeContent: une seule fois?"Transactions" multi-propriétés dans Core Data/NSManagedObject/NSFetchedResultsController?

En d'autres termes, est-il possible de dire quelque chose comme:

[managedObject beginChanges]; 
[managedObject setPropertyA:@"Foo"]; 
[managedObject setPropertyB:@"Bar"]; 
[managedObject commitChanges]; 

et ont le controllerDidChangeContent d'appel NSFetchedResultsController: (et les autres méthodes) qu'une seule fois?

Merci!

Répondre

0

Bien que ce ne soit définitivement pas une solution parfaite, vous pouvez ajouter une méthode à votre classe d'objets gérés qui prend les deux nouvelles valeurs de propriété et qui fonctionne un peu comme votre code ci-dessus.

3

Je le résous maintenant en créant un autre NSManagedObjectContext, qui agit comme «bloc-notes» pour les changements. Ensuite, lorsque toutes les modifications ont été effectuées, elles sont fusionnées dans l'autre contexte, en utilisant mergeChangesFromContextDidSaveNotification:. Il existe un exemple de projet appelé CoreDataBooks montrant comment cela fonctionne.