NSSplitViewController, NSArrayController et NSTableView désespérément vide.

Bonsoir à  tous, j'ai un problème assez gênant.


Je voulais m'écrire vite fait une application qui pouvait me gérer facilement mes TP a rendre. Pour le vite-fait on repassera...


 


J'utilise Core Data et donc des NSArrayController. J'ai deux entités fondamentales: Assignment et Subject. Je me suis donc dit que j'allais faire 2 NSArrayController sur ces deux entités et que j'allais le passer proprement à  chaque fois que prepareForSegue est appelé. Déjà  NSSplitViewController n'appelle pas cette méthode, donc je passe mes controllers dans viewDidLoad:



override func viewDidLoad() {
super.viewDidLoad()

splitViewItems[0].canCollapse = false

splitViewItems.forEach {
passAssignementArray($0.viewController)
passSubjectArray($0.viewController)
}
}

Les arrayControllers sont bien passés. Seulement quand j'essaie d'afficher leur contenu dans une NSTableView, c'est désespérément vide. Alors que si j'affiche une des vues hors du NSSplitView ça fonctionne...


 


Voilà  un exemple pour mieux comprendre, c'est la vue principale de l'application:


Réponses

  • CéroceCéroce Membre, Modérateur

    On pourrait avoir le projet ?


    Certainement un mauvais binding.


  • Le chapitre 11 de ce bouquin (qui existe en français) explique bien ce type de projet autant que je me souvienne :


    http://ptgmedia.pearsoncmg.com/images/9780321774088/samplepages/0321774086.pdf

  • Voilà  j'ai enfin le temps de répondre. J'ai changé l'architecture en passant le MOC au lieu du NSArrayController. J'ai du le mettre dynamic. 


    Je comprends pas cependant pourquoi ça ne marchait pas a la base...


  • CéroceCéroce Membre, Modérateur
    Les bindings sont entourés d'un épais mystère depuis leur naissance. Ceci explique sans doute pourquoi aucune documentation sérieuse n'a jamais été écrite à  leur sujet. (je pensais même écrire un livre sur le sujet à  un moment, mais il y avait trop de cas imprévisibles).
  • C'est vrai que ça tien plus de la magie noire qu'autre chose cette affaire.


    Il nous manque pas mal de classes pour bien tout comprendre. NSProxy notamment.


    Les sources de GNUSTEP n'aident pas beaucoup à  ce niveau.


Connectez-vous ou Inscrivez-vous pour répondre.