CoreData, insertion d'objets et NSTreeController

narknark Membre
14:27 modifié dans API AppKit #1
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.

Réponses

  • narknark Membre
    14:27 modifié #2
    C'était un oubli tout bête, peut-être que cela servira à  quelqu'un :
    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 ?
Connectez-vous ou Inscrivez-vous pour répondre.