2011-12-09 6 views
2

J'essaie de configurer un horodatage «modifié» automatique avec mon graphique d'objet Données de base. Je l'ai travailler dans chaque modèle avec le code suivant:Horodatage des données de base «modifié»

- (void)willSave 
{ 
    NSDate *date = [NSDate date]; 
    [self setPrimitiveValue:date forKey:@"modified"]; 
    [super willSave]; 
} 

Cependant, je voudrais cette date modifiée pour être en mesure de bouillonner le graphe d'objet, en changeant la date de modification pour chaque objet parent à son tour . Donc, si j'ai: Grand-parent - (hasMany) - >> Parent - (hasMany) - >> Enfant et moi changeons une propriété de Child, les timestamps modifiés par Parent et Grandparent doivent tous être mis à jour de la même manière valeur.

Existe-t-il un moyen simple de faire cela? Merci!

Répondre

1

Vous pouvez vous inscrire à la notification NSManagedObjectContextObjectsDidChangeNotification. Dans son userInfo, vous obtenez une liste d'objets gérés mis à jour, supprimés et insérés.

La prochaine étape consistera à parcourir les objets insérés et mis à jour, puis introspecter les objets (isKindOfClass, respondsToSelector, ...) et affecter un horodatage aux objets sélectionnés.

Best,

+0

C'est génial, merci! – NathanGaskin

+0

Pouvez-vous élaborer sur la façon dont vous avez parcouru les objets parents pour mettre à jour les horodatages? – chourobin

Questions connexes