284 votes

pour chaque boucle de l'objectif c pour accéder au dictionnaire NSMutable

Je trouve quelques difficultés à obtenir des clés mutables dictionnaire et valeurs en Objective-C.

Supposons que j’ai ceci :

Je peux définir des clés et des valeurs. Maintenant, je veux juste accéder à chaque clé et la valeur, mais je ne sais pas le nombre de touches définie.

En PHP, il est très facile, quelque chose comme suit :

Comment est-il possible en Objective-C ?

689voto

zneak Points 45458
for (NSString* key in xyz) {
    id value = [xyz objectForKey:key];
    // do stuff
}

Cela fonctionne pour chaque classe qui est conforme à la NSFastEnumeration protocole (disponible sur 10.5+ et iOS), mais NSDictionary est l'une des rares collections qui vous permet d'énumérer les clés au lieu de valeurs. Je vous suggère de lire sur rapide énumération dans les Collections de Programmation Rubrique.

Oh, je dois ajouter, cependant, que vous devriez ne JAMAIS modifier une collection lors de l'énumération à travers elle.

102voto

Quinn Taylor Points 29688

Juste pour ne pas laisser sortir le 10.6 + option pour énumérer les clés et valeurs à l’aide de blocs...

Si vous souhaitez que les actions se produire simultanément :

16voto

Brody Robertson Points 3197

Si vous avez besoin de muter le dictionnaire lors de l’énumération :

9voto

Jinah Adam Points 523

Ici quel est le meilleur moyen de créer une variable supplémentaire ici, comme si vous vouliez savoir c’est l’énième fois que la boucle est en cours d’exécution

J’ai créé un variable int, en dehors de la boucle, mais à l’intérieur que du bloc est dit que la variable est en lecture seule.

Merci.

5voto

Laurent Etiemble Points 17360

Je vous suggère de lire le énumération : parcours d’éléments de la Collection partie du Guide de programmation des Collections pour le cacao. Il y a un exemple de code pour votre besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X