Je rencontre des difficultés pour accéder aux clés et valeurs de dictionnaire mutables dans Objective-C.
Supposons que j'ai ceci:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
Je peux définir des clés et des valeurs. Maintenant, je veux juste accéder à chaque clé et valeur, mais je ne connais pas le nombre de clés définies.
En PHP, c'est très facile, quelque chose comme suit:
foreach ($xyz as $key => $value)
Comment est-ce possible dans Objective-C?
la source
for (NSString* key in [xyz allKeys])
est conceptuellement la même chose.Juste pour ne pas omettre l'option 10.6+ pour énumérer les clés et les valeurs à l'aide de blocs ...
Si vous souhaitez que les actions se produisent simultanément:
la source
*stop
? Comment l'utilisez-vous? Une référence?Si vous devez muter le dictionnaire lors de l'énumération:
la source
allKeys
retour une copie des clés. Il est donc sûr de muter le dictionnaire.La façon la plus simple d'énumérer un dictionnaire est
où
tDictionary
est leNSDictionary
ouNSMutableDictionary
vous voulez répéter.la source
Je vous suggère de lire la partie Énumération: parcourir les éléments d' une collection du Guide de programmation des collections pour Cocoa . Il existe un exemple de code pour votre besoin.
la source
Une énumération rapide a été ajoutée dans la version 10.5 et dans l'iPhone OS, et c'est beaucoup plus rapide, pas seulement le sucre syntaxique. Si vous devez cibler l'ancien runtime (c'est-à-dire 10.4 et versions antérieures), vous devrez utiliser l'ancienne méthode d'énumération:
Vous ne libérez pas l'objet énumérateur et vous ne pouvez pas le réinitialiser. Si vous voulez recommencer, vous devez demander un nouvel objet énumérateur dans le dictionnaire.
la source
Vous pouvez utiliser
-[NSDictionary allKeys]
pour accéder à toutes les clés et les parcourir.la source