J'ai quelques questions auxquelles j'essaie de répondre moi-même (en cherchant dans la documentation) mais j'ai le sentiment qu'il me manque quelque chose.Application Core Data Document-based: comment modéliser et contrôler une entité qui est instanciée une seule fois par document?
Tous les conseils (et/ou les pointeurs vers la documentation appropriée) seraient très appréciés.
Je construis une application basée sur des documents Core Data. Il existe essentiellement deux entités:
Il existe un seul enregistrement "Comparaison" associé à chaque document. Il existe potentiellement de nombreux enregistrements "Node" associés à chaque document.
Ma première question est de savoir si j'y pense correctement. Comme il n'y a qu'un seul objet de comparaison pour chaque document, les attributs de la comparaison sont essentiellement des attributs du document lui-même. Quel (le cas échéant) est le moyen préféré de modéliser cela?
Si une entité de comparaison est en fait la bonne façon de procéder, ma prochaine question est de savoir comment et quand instancier réellement l'objet de comparaison (unique). L'utilisateur ne devrait pas avoir à "ajouter" explicitement la comparaison car il n'y en aura qu'une seule associée au document. Au lieu de cela, un seul objet de comparaison doit être instancié et inséré dans le managedObjectContext. J'ai quelque chose comme ça travail déjà, avec le code dans MyDocument.m qui ressemble à ceci:
- (void) windowControllerDidLoadNib: (NSWindowController *) {windowController [super windowControllerDidLoadNib: windowController]; [NSEntityDescription insertNewObjectForEntityForName: @ "Comparaison" inManagedObjectContext: managedObjectContext]; }
Cependant - si l'utilisateur crée un nouveau document, mais ne puis jamais travailler avec elle - par exemple s'il clique immédiatement le bouton de fermeture - il ne devrait pas être invité à « sauver » le document. Il devrait être invité à sauvegarder son travail seulement s'il a effectivement entré des informations. Y a-t-il un moyen préféré d'implémenter ce comportement?