Problème de tri avec les bindings
olof
Membre
'jour !
Soit une entity Core Data qui contient, entre autres, un attribut dateEcheance. Dans une fenêtre, j'ai une table qui m'affiche le contenu de mon entité par les bindings, en utilisant un NSArrayController. Sur ce dernier, je paramètre un sortDescriptor (tacheSort). Dans ma classe "principale", dans la méthode init, je fais :
Et çq fonctionne très bien. Le problème est que j'ai d'abord les lignes avec une date, dans l'ordre croissant et qu'ensuite j'ai les lignes qui n'ont pas de dateEcheance. J'ai donc voulu faire une comparaison "maison". J'ai remplacé la ligne ci-dessus par celle-ci :
Et, dans ma classe qui représente mon entité (FGEntityTache, qui étend NSManagedObject), j'ai ajouté quelque chose comme ça, juste pour voir si mon code était appelé :
Quand je lance mon appli, je n'ai rien dans ma fenêtre de log. Je présume donc que je suis légèrement à côté de la plaque ?
Merci !
Soit une entity Core Data qui contient, entre autres, un attribut dateEcheance. Dans une fenêtre, j'ai une table qui m'affiche le contenu de mon entité par les bindings, en utilisant un NSArrayController. Sur ce dernier, je paramètre un sortDescriptor (tacheSort). Dans ma classe "principale", dans la méthode init, je fais :
tacheSort = [[NSMutableArray alloc] initWithObjects:[[NSSortDescriptor alloc] initWithKey:@"dateEcheance" ascending:TRUE], nil];
Et çq fonctionne très bien. Le problème est que j'ai d'abord les lignes avec une date, dans l'ordre croissant et qu'ensuite j'ai les lignes qui n'ont pas de dateEcheance. J'ai donc voulu faire une comparaison "maison". J'ai remplacé la ligne ci-dessus par celle-ci :
tacheSort = [[NSMutableArray alloc] initWithObjects:[[NSSortDescriptor alloc] initWithKey:@"dateEcheance" ascending:TRUE selector:@selector(dateEcheanceCompare:)], nil];
Et, dans ma classe qui représente mon entité (FGEntityTache, qui étend NSManagedObject), j'ai ajouté quelque chose comme ça, juste pour voir si mon code était appelé :
<br />-(NSComparisonResult)dateEcheanceCompare:(NSManagedObject *)aTache {<br /> NSLog(@"Compare...");<br /> <br /> return [super compare:aTache];<br />}<br />
Quand je lance mon appli, je n'ai rien dans ma fenêtre de log. Je présume donc que je suis légèrement à côté de la plaque ?
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ta méthode ne correspond pas au proto, mais j'avoue que j'ignore si le runtime fait cette vérification.
Donc ça signifie que je peux nommer ma fonction comme je veux, mais que je dois lui envoyer que l'attribut à tester en paramètre et non l'objet entier ? (je ne peux pas tester maintenant, pas de Mac sous la main).