tri et recherche dans un tableau
odjau
Membre
Salut tout le monde,
je cherche un moyen de trier un tableau, et de trouver l'index d'un élément de ce tableau. Je n'ai pas trouvé (ou pas su utiliser les méthodes proposées par la classe NSMutableArray :-\\).
Pour le tri :
Dans mon cas, mon tableau contient des dictionnaires (une clé date et une clé "valeur") et je souhaite trier mon tableau dans un ordre chronologique (du plus ancien au plus récent).
Pour la recherche d'index :
Lors de l'ajout d'un élément dans mon tableau, je veux pouvoir trouver l'index des dictionnaire dont la date "entoure" l'élément à ajouter afin de vérifier si la "valeur" associée à la date est cohérente :why?:
ça fait 2 jours que je m'arrache les cheveux j'vais devenir complétement chauve
Merci d'avance
je cherche un moyen de trier un tableau, et de trouver l'index d'un élément de ce tableau. Je n'ai pas trouvé (ou pas su utiliser les méthodes proposées par la classe NSMutableArray :-\\).
Pour le tri :
Dans mon cas, mon tableau contient des dictionnaires (une clé date et une clé "valeur") et je souhaite trier mon tableau dans un ordre chronologique (du plus ancien au plus récent).
Pour la recherche d'index :
Lors de l'ajout d'un élément dans mon tableau, je veux pouvoir trouver l'index des dictionnaire dont la date "entoure" l'élément à ajouter afin de vérifier si la "valeur" associée à la date est cohérente :why?:
ça fait 2 jours que je m'arrache les cheveux j'vais devenir complétement chauve
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je vais expliquer la première, qui datent de l'aire NextStep, et laisser à ClicCool (pour ne donner qu'un exemple) le soin d'expliquer la troisième, utilisée par les bindings
Pour ce qui est du tri c'est moins évident. il y a trois possibilité, soit les méthodes sortUsingSelector, qui prend un argument un sélecteur (@selector(NomMethode), qui est une méthode qui doit prendre un argument, qui est du type de l'objet à trier (un dico dans ton cas). Cette méthode doit appartenir à la classe de l'objet à trier et renvoyer NSOrderedAscending, NSOrderedDescending, NSOrderedSame suivant le cas. Dans ton cas, pour utiliser cette solution, tu dois créer une catégorie de NSDico, et y rajouter la dite méthode. Le problème est que dans ce cas, tu mettres comme constante dans la méthode la clé, ce que je ne trouve pas très propre, mais ça fonctionne bien.
Si ce sont des dates le code donne
L'autre méthode est sortUsingFunction, mais je ne l'ai jamais utilisé.
j'ai essayé ta méthode, mais sans succès
j'ai un warning : "multiple declarations for method `compare:'"
J'ai du loupé une étape quelque part.
Dans mon controleur j'ai implémenté :
J'ai créé une catégorie dans laquelle j'ai le code suivant :
N'ayant jamais fais de catégorie auparavant, je pense que l'erreur peut se situer par la.
J'ai tout de même vérifié avec le débugeur que ma catégorie était appelée autant de fois que j'ai d'élément dans mon tableau, c'est bien le cas, mais sans résultat sur l'ordre des éléments de mon tableau :-\\
Si tu as une idée ::)
Mais ça ne change rien au fonctionnement...
J'avais supposé que tu stockais tes dates dans des NSDate. Si ce n'est pas le cas, tu fais comment? Si c'est des NSString, quel format as-tu choisi?
Tu as bien fait un reloadData?
--> je stock bien des NSdate (enfin sauf erreur de ma part )
--> je fais bien un reloaData (ça j'en suis sûr ::))
Je retourne sur mon problème dès ce soir (dur d'avancer quand le temps manque ::))
@ + , j'te tiens au courant
ça marche. Merci Renaud.
Le problème venait de l'implémentation du [data sortedArrayUsingSelector:@selector(compareDates]; qui ne rafraà®chissait pas correctement mes données.
Encore merci, je m'attaque maintenant à la vérification de la "cohérence" des élément ajouté au tableau .
@+