Cómo iterar sobre un diccionario sin conocer las claves, mientras que consigue clave y el objeto?

StackOverflow https://stackoverflow.com/questions/3064933

  •  28-09-2019
  •  | 
  •  

Pregunta

Tengo una NSDictionary y quiero iterar sobre los objetos. Pero, al mismo tiempo, lo que necesito saber la clave del diccionario.

Recuerdo que era un especial, la forma elegante de enumeración rápida, pero he olvidado la sintaxis exacta.

Cualquier persona?

¿Fue útil?

Solución

Creo que lo que quiere es algo como esto:

for (id key in dictionary) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

aquí .

Otros consejos

Esta es también una buena opción si te gusta bloques.

[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

}]
for (id key in mydictionary) {
   id mything = [mydictionary objectForKey:key];
}

keyEnumerator devuelve un objeto que le permite iterar a través de cada una de las teclas en el diccionario. De aquí

A mi conocimiento, en el momento en que hizo la pregunta, sólo había una manera de atravesar las claves y valores al mismo tiempo: CFDictionaryApplyFunction .

Con esta función Fundación Core implica un puntero de función C fea para el cuerpo del bucle y una gran cantidad de no-menos feo, sin embargo, la fundición de libre-puente de peaje.

@zekel tiene la forma moderna de la iteración un diccionario. Vótelo arriba!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top