iphone nsenumerator

iphone - ¿Cómo usar NSEnumerator con NSMutableDictionary?



(3)

¿Cómo uso NSEnumerator con NSMutableDictionary para imprimir todas las claves y valores?

¡Gracias!


A menos que necesite usar NSEnumerator, puede usar la enumeración rápida (que es más rápida) y concisa.

for(NSString *aKey in myDictionary) { NSLog(@"%@", aKey); NSLog(@"%@", [[myDictionary valueForKey:aKey] string]); //made up method }

También puedes usar un enumerador con enumeración rápida:

NSEnumerator *enumerator = [myDictionary keyEnumerator]; for(NSString *aKey in enumerator) { NSLog(@"%@", aKey); NSLog(@"%@", [[myDictionary valueForKey:aKey] string]); //made up method }

Esto es útil para cosas como hacer el enumerador inverso en una matriz.


Aquí está la versión sin búsqueda de objeto. Tenga en cuenta que las llamadas a objectForKey no existen. Utilizan keyEnumerator y objectEnumerator ambos.

id aKey = nil; NSEnumerator *keyEnumerator = [paramaters keyEnumerator]; NSEnumerator *objectEnumerator = [paramaters objectEnumerator]; while ( (aKey = [keyEnumerator nextObject]) != nil) { id value = [objectEnumerator nextObject]; NSLog(@"%@: %@", aKey, value); }


De la referencia de clase NSDictionary :

Puede enumerar los contenidos de un diccionario por clave o por valor utilizando el objeto NSEnumerator devuelto por keyEnumerator y objectEnumerator respectivamente.

En otras palabras:

NSEnumerator *enumerator = [myMutableDict keyEnumerator]; id aKey = nil; while ( (aKey = [enumerator nextObject]) != nil) { id value = [myMutableDict objectForKey:anObject]; NSLog(@"%@: %@", aKey, value); }