![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Mac Avant de poster: Lire La FAQ Mac; Voir la page Outils; Voir les tutoriels. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: janvier 2006
Messages: 36
|
Bonjour,
J'ai le besoin de trier un NSMutableArray composé d'objets, étant eux aussi des NSMutableArray. En fait, je mets dans un tableau global, tout un tas de petits tableaux à une dimension, de deux valeurs, en gros j'ai : [x1, y1] [x2, y2] [xn, yn] J'ai fait ça comme ça : Code :
litleArray = [[NSMutableArray alloc] init]; [litleArray addObject:gravityCenterOrdonnee]; [litleArray addObject:gravityCenterAbscisse]; [gravityCenterTabular addObject:litleArray]; J'ai essayé des choses en utilisant des Descripteur mais je n'ai pas tout compris :/ Code :
NSSortDescriptor* sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"@min" ascending:YES] autorelease]; [gravityCenterTabular sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; Vous pouvez me sortir de la ? Merci d'Avance. |
|
|
|
|
|
#2 (permalink) | ||
![]() Date d'inscription: février 2003
Messages: 161
|
Pas de quoi casser trois pattes à un canard.
Voici un exemple: Citation:
Citation:
|
||
|
|
|
|
|
#3 (permalink) | |
|
Futur Membre du Club
![]() Date d'inscription: janvier 2006
Messages: 36
|
Bonjour,
Citation:
Je ne dois quand même pas créer autant de NSDictionary *test que j'ai de sous-tableaux dans mon tableau...? Sinon j'ai aussi un tableau d'une seule dimension avec les mêmes valeurs organisées comme : [x0, y0, x1, y1, ... , ... xn, yn]. un couple de coordonné est donc accessible en i et i+1. Vois-tu ce que je veux dire ? Merci en tous cas. En fait j'ai réussi, je crois bien. Mais j'ai un autre petit problème Dans List, j'ai qu'un seul objet. Je n'arrive plus à accéder aux valeurs à partir du tableau trié...:'( Dernière modification par mmx ; 29/08/2008 à 15h10 Motif: J'ai avancé :) |
|
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: février 2003
Messages: 161
|
Ok oui cela m'avait échappé. Là je sais pas si c'est envisageable avec NSSortDescriptor pour des NSArray.
Tu es dans un cas un peu particulier. En règle générale, on identifie les "colonnes" par un identifiant qui sert aussi de clef pour l'affichage. Je pense là en l'occurrence à l'affichage du résultat directement vers une NSTableView. D'où l'utilisation de dictionnaires pour chaque "ligne". |
|
|
|
|
|
#5 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: janvier 2006
Messages: 36
|
Bon, et bien...
Je vais ressortir le bon vieux tri à bulle, faire une passe sur x, puis une sur y en essayant de tout changer comme il faut à chaque fois à coup de exchangeObjectsAtIndex: Même si ça ne m'a pas servi, au moins j'aurais un peu mieux compris les descripteurs. A moins que quelqu'un ait une autre zolie idée Merci et à plus. |
|
|
|
|
|
#6 (permalink) | |
|
Membre émérite
![]() Date d'inscription: septembre 2006
Messages: 730
|
Citation:
|
|
|
|
|
|
|
#7 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: janvier 2006
Messages: 36
|
Bonjour,
Et bien fait fait ça se complique car je me suis rendu compte qu'un tri d'abord sur x puis sur y ne convient pas vraiment, il y a une toute petite nuance. Il faut partir du principe que x et y sont des coordonnées de points, et ces points constituent une grille. Pour avoir les coordonnées organisés comme cela : 1 5 .. 2 6 .. 3 7 .. 4 8 .. il faut que je fasse un tri sur x, ça c'est bon, c'est fait. Mais ensuite il faut faire un tri croissant sur y mais que pour la première colonne des x, puis un autre tri croissant sur y sur la deuxième colonne... et ceci jusqu'à la fin. Je ne peux pas m'appuyer sur le nombre de points par colonne (il est variable), je ne peux que m'appuyer sur les variations de x. En effet, pour des petites variations de x (c'est que le point et toujours sur la même colonne) je fais le tri sur y (en gardant la correspondance des x bien sûr) puis lorsque la variation d'un x à l'autre est plus grande, c'est que j'ai changé de colonne, et je recommence. J'ai vraiment du mal du point de vue de l'algo pour faire ça, z'avez pas une petite idée pour m'aider... la sortUsingFunction:context peut réaliser ce dont j'ai besoin ? Merci d'avance. |
|
|
|
|
|
#9 (permalink) |
|
Membre émérite
![]() Date d'inscription: janvier 2007
Localisation: Toulouse !
Âge: 18
Messages: 845
|
Moi non plus j'ai rien compris
.
__________________
Développeur amateur en C, C++ et Objective-C sous Mac OS X 10.5. Portage en cours par mes soins de la SFML pour Mac OS X. Je ne réponds par MP qu'aux messages strictement personnels. |
|
|
|
![]() |
![]() |
||
Tri de NSMutableArray (Descriptor : A vos Marque ! prêt ! Partez !)
|
||
| Outils de la discussion | |
|
|