2009-11-09 5 views
4

Chaque fois qu'un de mes objets gérés est modifié, je souhaite stocker la date à laquelle il a été modifié (dans un attribut qui se trouve déjà dans mon modèle de données), par commodité lorsque je me synchronise avec d'autres clients.Comment définir la date de modification à chaque modification de NSManagedObject?

Existe-t-il un moyen de le faire sans A) réécrire tous mes setters manuellement ou B) en me basant sur moi-même pour toujours changer la date de modification à chaque fois que l'objet est modifié?

Répondre

2

Vous pouvez vous inscrire auprès du centre de notification pour observer la notification NSManagedObjectContextObjectsDidChange.

Ceci vous indiquera quels objets sont modifiés. Vous pouvez vérifier si votre objet est parmi eux et agir en conséquence.

+0

oui, c'est ce que j'ai fini par faire. Je vous remercie. – refulgentis

0

Juste pour être complet, vous pouvez également le faire dans -willSave si vous avez déjà une sous-classe de NSManagedObject.

+0

il faut seulement noter que willSave est appelé à chaque fois que l'objet est sauvegardé, donc vous devez faire un peu de travail supplémentaire pour savoir s'il a été ajouté/modifié/supprimé. Les notifications NSManagedObjectContext le font pour vous et vous permettent d'effectuer des itérés sur des NSSets. – refulgentis

Questions connexes