J'ai besoin d'afficher dans un UitailView le contenu d'un NSDictionary renvoyé par une API, en respectant l'ordre des clés.
J'utilise: P>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *key = self.data.allKeys[indexPath.section]; NSArray *list = self.data[key]; id data = list[indexPath.row]; PSSearchCell *cell = [PSSearchCell newCellOrReuse:tableView]; cell.model = data; return cell; }
4 Réponses :
Essayez ceci, prenez maintenant des valeurs basées sur la touche triée. p> En ordre alphabétique, essayez ceci, p>
Mais je n'ai pas une telle chose que "FOO1", "FOO2" ... Je n'ai pas de chiffres dans mon nom de clé. Mon API Retourne Key = "Cinema" Valeur = Liste de cinéma, clé = "Théâtre", valeur = liste du théâtre, et j'ai besoin de les afficher dans cet ordre: les cinémas d'abord, puis les théâtres.
@ βhargavḯ Je ne veux pas trier ces clés où je veux que les clés soient reçues sans changer de commande. Alors est-ce possible? S'il vous plaît aider.
@ βhargavḯ merci. Son travail pour un ordre numérique pour le dictionnaire :)
Utilisez SortDarrayUsingSelector à la place SortusingSelector
Comme tout le monde dit, Je ne peux pas commander mes clés comme ils apparaissent dans mon journal Nsdicdiction Strong> car un nsdictionnel n'est pas commandé. J'ai demandé aux personnes de l'API de renvoyer un tableau à la place: p> / ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------- EM> / P> Dommage non mal Il n'y a pas une méthode "SortedarrayUDray" utilisé comme celui-ci: P> NSArray * arrayOne = [@"key E", @"key A", @"key C"];
NSArray * arrayTwo = [@"key A", @"key B", @"key C", @"key D", @"key E", @"key F"];
NSArray * orderedArray = [arrayOne sortedArrayUsingArray: arrayTwo];
Aucune méthode de ce type n'existe: "SorteDarrayUDayAryAry". Utilisation: blog.pioneringsoftware.co .uk / 2008/08/20 / ...
J'ai écrit une méthode rapide pour prendre une matrice source (d'objets qui sont tous hors de commande) et un tableau de référence (qui comporte des objets dans une commande souhaitée (et totalement arbitraire)) et renvoie un tableau où les éléments de La matrice source a été réorganisée pour correspondre à la matrice de référence.
- (NSArray *) reorderArray:(NSArray *)sourceArray toArray:(NSArray *)referenceArray { NSMutableArray *returnArray = [[NSMutableArray alloc] init]; for (int i = 0; i < [referenceArray count]; i++) { if ([sourceArray containsObject:[referenceArray objectAtIndex:i]]) { [returnArray addObject:[arrReference objectAtIndex:i]]; } } return [returnArray copy]; }
Vous avez dit que vous perdiez l'ordre des clés, donc je suppose que vous tirez ces clés d'un Donc, tout ce que vous avez à faire est Pour apporter ce et c'est tout ce que vous devez faire pour garder la commande que vous souhaitez utiliser un NSDictionary et NSARRAY. P> Pour le visualiser mieux, dans le cas où votre tableau commandé ne contient que des chaînes, ce serait comme suit: p> espère qu'il aide. P> p> Nsarray code>. Droit? Et dans ce
nsarray code> vous avez les clés commandées comme vous le souhaitez. Et je vois aussi que les objets du
Nsdictionner code> sont des tableaux code> code>, non? Oui. Donc, dans votre
Array commandé code> Vous avez plus de tableaux.
DATA code> est le nom du NSDictionary. P>
Nsarray code> (celui qui est commandé comme vous le souhaitez toujours) dans ce fichier .m et après cela, utilisez un code génial dans votre
CellfrowrotindexPath code>. Vous pouvez le faire en procédant comme suit: p>
Ces clés qui ne sont jamais commandées. Les dictionnaires n'ont pas de commande.
Dupliqué possible de