J'ai du mal à essayer de trier un tableau de dictionnaires.
Mes dictionnaires ont quelques valeurs d’intérêt, de prix, de popularité, etc.
Aucune suggestion?
Utilisez NSSortDescriptor
comme ceci ..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories
est le tableau que vous voulez trier. recent
est un autre tableau mutable qui a trié les valeurs du dictionnaire. Changez le @"interest"
avec la valeur de clé sur laquelle vous devez trier.
Bonne chance
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Je ne veux pas vraiment le diviser en plusieurs lignes. C'est déjà assez simple pour moi.
Vous pouvez simplement passer du parent à la propriété enfant requise. Par exemple
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
Mise à jour, sortUsingDescriptors est maintenant triéArrayUsingDescriptors
Donc, c'est comme:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Rappelez-vous assigner à un tableau
Écrivez une fonction de tri qui compare les champs pertinents dans deux dictionnaires. Lorsque vous avez cette version, vous pouvez par exemple utiliser NSArray#sortedArrayUsingFunction:context:
pour trier votre tableau.