CoreData, insertion d'objets et NSTreeController
nark
Membre
Bonjour à tous,
D'avance, désolé pour le titre pouvant porter à confusion, question de point de vue.
J'ai un problème sans doute assez simple, mais auquel je ne trouve pas vraiment de solution.
J'ai un NSTreeController qui gère des entités de type Node et les affiche dans un NSOutlineView. Chaque Node peut avoir n Fils, et chaque Fils peut avoir n PetitsFils, et c'est tout (3 niveaux).
Je cherche à ajouter des données "programmatically" dans mon NSManagedObjectContext. J'ai donc des routines qui crées des Nodes et leur ajoute des Fils, et des PetitsFils. (insertNewObjectForEntityForName:inManagedObjectContext:).
A la sortie, je retrouve bien mes noeuds parents, contenant leurs fils dans mon NSOutlineView. Seulement, en plus des noeuds parents je retrouve chaque objet "inséré" comme entité distincte. Par exemple un noeud "Papa" contiendra bien "Fils1", "Fils2" et "Fils3" mais apparaitront également les entités "Fils1", "Fils2" et "Fils3" à la racine du NSOutlineView.
Dans IB, mon NSOutlineView est configuré avec l'options "Prepares Content", et de ce que j'ai compris, cette option permet au contrôleur d'afficher automatiquement les données du contexte. Seulement, pour ma part, il fait n'importe quoi !
Donc soit, il existe un autre moyen de créer des entités sans les "insérer" directement dans le contexte...
Soit, on peut spécifier un comportement spécifique au NSTreeController...
Ou alors, j'ai rien compris à Core Data...
Z'auriez un peu d'aide ? SI vous avez compris mon problème...
R.
D'avance, désolé pour le titre pouvant porter à confusion, question de point de vue.
J'ai un problème sans doute assez simple, mais auquel je ne trouve pas vraiment de solution.
J'ai un NSTreeController qui gère des entités de type Node et les affiche dans un NSOutlineView. Chaque Node peut avoir n Fils, et chaque Fils peut avoir n PetitsFils, et c'est tout (3 niveaux).
Je cherche à ajouter des données "programmatically" dans mon NSManagedObjectContext. J'ai donc des routines qui crées des Nodes et leur ajoute des Fils, et des PetitsFils. (insertNewObjectForEntityForName:inManagedObjectContext:).
A la sortie, je retrouve bien mes noeuds parents, contenant leurs fils dans mon NSOutlineView. Seulement, en plus des noeuds parents je retrouve chaque objet "inséré" comme entité distincte. Par exemple un noeud "Papa" contiendra bien "Fils1", "Fils2" et "Fils3" mais apparaitront également les entités "Fils1", "Fils2" et "Fils3" à la racine du NSOutlineView.
Dans IB, mon NSOutlineView est configuré avec l'options "Prepares Content", et de ce que j'ai compris, cette option permet au contrôleur d'afficher automatiquement les données du contexte. Seulement, pour ma part, il fait n'importe quoi !
Donc soit, il existe un autre moyen de créer des entités sans les "insérer" directement dans le contexte...
Soit, on peut spécifier un comportement spécifique au NSTreeController...
Ou alors, j'ai rien compris à Core Data...
Z'auriez un peu d'aide ? SI vous avez compris mon problème...
R.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
IB > NSTreeController > Attributes > Fetch Predicate : parent == nil
Indiquant ainsi au contrôleur de n'inclure que les entités n'ayant pas de parent.
Easy, uh ?