web-dev-qa-db-fra.com

Accès aux objets dans NSMutableDictionary par index

Pour afficher les clés/valeurs d'un NSMutableDictionary séquentiellement (dans une vue de table), je dois y accéder par index. Si l'accès par index pouvait donner la clé à cet index, je pourrais alors obtenir la valeur. Y a-t-il un moyen de le faire ou une technique différente?

55
4thSpace

Vous pouvez obtenir un NSArray contenant les clés de l'objet à l'aide de la méthode allKeys. Vous pouvez ensuite examiner cela par index. Notez que l'ordre dans lequel les clés apparaissent dans le tableau est inconnu. Exemple:

NSMutableDictionary *dict;

/* Create the dictionary. */

NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];

EDIT: En fait, si je comprends ce que vous essayez de faire, ce que vous voulez se fait facilement en utilisant une énumération rapide, par exemple:

NSMutableDictionary *dict;

/* Put stuff in dictionary. */

for (id key in dict) {
    id anObject = [dict objectForKey:key];
    /* Do something with anObject. */
}

EDIT: Correction d'une faute de frappe signalée par Marco.

122
Benno

vous pouvez obtenir un tableau de toutes les clés avec la méthode allKeys du dictionnaire; puis vous pouvez accéder au tableau par index. cependant, un dictionnaire en lui-même n'a pas d'ordre inhérent, donc l'ordre des clés que vous obtenez avant et après une modification du dictionnaire peut être complètement différent

9
newacct