[Résolu] - Ordre des données avec Core Data et NSArrayController
skimpy
Membre
Bonsoir,
Je suis en train de faire l'exercice 11 du livre Programmation Cocoa sous OSX qui consiste à créer une application permettant d'effectuer le suivi des voitures. L'exercice se base sur Core Data avec un NSArrayController et dispose d'une NSTableView dans laquelle apparaissent la marque de la voiture, le prix ...
Lorsque je saisis des entrées, que je ferme l'application et la relance, les entrées saisies n'apparaissent pas dans l'ordre d'origine ; le rendu est même plutôt aléatoire. J'ai cherché et trouvé ces 2 sites :
http://shanecrawford.org/2008/37/sorting-a-coredata-backed-nsarraycontroller/
http://www.timisted.net/blog/archive/core-data-drag-drop/
D'après votre expérience, faut-il ajouter une propriété (index ou order) afin de conserver l'ordre initial ? Faut-il mieux créer une sous-classe de NSArrayController et redéfinir les méthodes ou plutôt utiliser la méthode utilisée sur le timisted ?
Merci.
Je suis en train de faire l'exercice 11 du livre Programmation Cocoa sous OSX qui consiste à créer une application permettant d'effectuer le suivi des voitures. L'exercice se base sur Core Data avec un NSArrayController et dispose d'une NSTableView dans laquelle apparaissent la marque de la voiture, le prix ...
Lorsque je saisis des entrées, que je ferme l'application et la relance, les entrées saisies n'apparaissent pas dans l'ordre d'origine ; le rendu est même plutôt aléatoire. J'ai cherché et trouvé ces 2 sites :
http://shanecrawford.org/2008/37/sorting-a-coredata-backed-nsarraycontroller/
http://www.timisted.net/blog/archive/core-data-drag-drop/
D'après votre expérience, faut-il ajouter une propriété (index ou order) afin de conserver l'ordre initial ? Faut-il mieux créer une sous-classe de NSArrayController et redéfinir les méthodes ou plutôt utiliser la méthode utilisée sur le timisted ?
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il va falloir trier les entrées. Comme tu le supputes, si tu veux classer par ordre de saisie, alors il faut ajouter un attribut ID à chaque objet; mais tu pourrais aussi choisir de classer par la marque du véhicule, puis le modèle.
Ne surcharge jamais NSArrayController, c'est trop compliqué (j'ai essayé dans le passé) parce qu'on ne sait pas précisément comment marche chaque méthode. En fait, tu te rendras compte qu'il y a toujours une autre manière de faire. Dans ton cas, utiliser la propriété sortDescriptor comme conseillé par jpimbert.