Je ne comprends rien au tri des NSArray
sisopetron
Membre
Bonjour,
J'ai besoin de votre aide. Voilà ce que je fais pour remplir un tableau :
Les nbrJours, nom et details sont des variables définies précédemment par le programme, nbrJours est de type int et les deux autres de type string.
J'obtiens donc un tableau du style :
Je voudrais trier ce tableau en fonction de la première colonne.
Pourriez-vous m'expliquer clairement ce que je dois écrire ? Parce que entre KVC, descriptors etc ... je me perds complètement. Comment dois-je m'y prendre ?
Merci de votre aide.
tata !
J'ai besoin de votre aide. Voilà ce que je fais pour remplir un tableau :
[myArray addObject: [NSArray arrayWithObjects: [NSNumber numberWithInt: nbrJours], nom, details, nil]];
Les nbrJours, nom et details sont des variables définies précédemment par le programme, nbrJours est de type int et les deux autres de type string.
J'obtiens donc un tableau du style :
15 nom1 blabla1<br />10 nom2 blabla2<br />55 nom3 blabla3<br />...<br />
Je voudrais trier ce tableau en fonction de la première colonne.
Pourriez-vous m'expliquer clairement ce que je dois écrire ? Parce que entre KVC, descriptors etc ... je me perds complètement. Comment dois-je m'y prendre ?
Merci de votre aide.
tata !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Un NSDictionary représente des couples clé/valeur
À partir de là , tu peux utiliser NSSortDescriptor qui te permettras de trier ta array en renseignant la clé à trier. Par exemple, si je veux classer mes entrées en fonction de la clé "Nom", et ce par ordre alphabétique, cela donnera :
;
Tu peux aussi enchaà®ner les tries en utilisant "sortUsingDescriptors" (note le "s" en plus à la fin)
Par exemple pour trier d'abord par nom, puis par nombre de jours :
A+ (sûrement )
i est donné par une boucle for (i=0 à sortedArray count-1). Or maintenant cela ne marche plus : j'ai une erreur sur cette ligne : -[NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x280290 Je pense que cette erreur veut dire que je n'ai plus un tableau de structure i lignes sur 3 colonnes.
Où est donc l'erreur ? Comment puis-je faire pour récupérer les enregistrements dans le tableau ?
Merci.
Lorsque tu fais [sortedArray objectAtIndex:i], tu obtiens maintenant un NSDictionary, et non pas un NSArray.
Ainsi, pour récupérer nbrjours, tu dois faire :
Mais améliorons directement ta boucle :
A bientôt.
Didier