objective objective-c ios nsmutabledictionary

objective c - objective - bucle a través de un NSMutableDictionary



nsdictionary to object swift (6)

  1. Para bucle simple, la enumeración rápida es un poco más rápida que el bucle basado en bloques
  2. Es más fácil hacer una enumeración concurrente o inversa con una enumeración basada en bloques que con una enumeración rápida. Al realizar un bucle con NSDictionary puede obtener la clave y el valor en un acierto con un enumerador basado en bloques, mientras que con la enumeración rápida debe usar la clave para recuperar el valor en un mensaje de envío separado

en enumeración rápida

for(id key in myDictionary) { id value = [myDictionary objectForKey:key]; // do something with key and obj }

en Bloques:

[myDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { // do something with key and obj }];

¿Cómo recorro todos los objetos en un NSMutableDictionary independientemente de las claves?


No necesita asignar valor a una variable. Puede acceder a él directamente con myDict[key] .

for(id key in myDict) { NSLog(@"Key:%@ Value:%@", key, myDict[key]); }


Otra forma es usar el Dicts Enumerator. Aquí hay un código de muestra de Apple:

NSEnumerator *enumerator = [myDictionary objectEnumerator]; id value; while ((value = [enumerator nextObject])) { /* code that acts on the dictionary’s values */ }


Puede usar [dict allValues] para obtener un NSArray de sus valores. Tenga en cuenta que no garantiza ningún orden entre llamadas.


Una forma estándar se vería así

for(id key in myDict) { id value = [myDict objectForKey:key]; [value doStuff]; }


puedes usar

[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { // do something with key and obj }];

si su sistema operativo objetivo admite bloques.