Como iterar sobre um dicionário sem conhecer as chaves, enquanto fica com chave e objeto?

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

  •  28-09-2019
  •  | 
  •  

Pergunta

Eu tenho um nsdictionary e quero iterar sobre os objetos. Mas, ao mesmo tempo, preciso conhecer a chave do dicionário.

Lembro que havia uma forma especial e sofisticada de enumeração rápida, mas esqueci a sintaxe exata.

Alguém?

Foi útil?

Solução

Eu acho que o que você quer é algo assim:

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

Tirado de aqui.

Outras dicas

Esta também é uma boa escolha se você gosta de blocos.

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

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

KeyEnumerator Retorna um objeto que permite iterar através de cada uma das chaves no dicionário. A partir de aqui

Que eu saiba, no momento em que você fez a pergunta, havia apenas uma maneira de atravessar chaves e valores ao mesmo tempo: CFDictionaryApplyFunction.

O uso dessa função fundamental envolve um ponteiro de função C feia para o corpo do loop e muito fundição não-incorreta, mas com pedágio livre.

@zekel tem o maneira moderna de iterando um dicionário. Vote dele!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top