Estou encontrando alguma dificuldade em acessar valores e chaves de dicionário mutáveis no Objective-C.
Suponha que eu tenho isso:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
Eu posso definir chaves e valores. Agora, eu só quero acessar cada chave e valor, mas não sei o número de chaves definidas.
No PHP, é muito fácil, da seguinte maneira:
foreach ($xyz as $key => $value)
Como é possível no Objective-C?
objective-c
nsdictionary
enumeration
nsmutabledictionary
key-value
Sagar R. Kothari
fonte
fonte
for (NSString* key in [xyz allKeys])
conceitualmente é a mesma coisa.Apenas para não deixar de fora a opção 10.6+ para enumerar chaves e valores usando blocos ...
Se você deseja que as ações ocorram simultaneamente:
fonte
*stop
? Como você faz uso disso? Alguma referência?Se você precisar alterar o dicionário enquanto enumera:
fonte
allKeys
retornar uma cópia das chaves. Portanto, é seguro alterar o dicionário.A maneira mais fácil de enumerar um dicionário é
onde
tDictionary
está oNSDictionary
ouNSMutableDictionary
você deseja iterar.fonte
Sugiro que você leia a parte Enumeração: Atravessando os elementos de uma coleção do Guia de programação de coleções para o cacau . Existe um código de exemplo para sua necessidade.
fonte
A enumeração rápida foi adicionada na versão 10.5 e no iPhone OS, e é significativamente mais rápida, não apenas o açúcar sintático. Se você precisar direcionar o tempo de execução mais antigo (por exemplo, 10.4 e versões anteriores), precisará usar o método antigo de enumerar:
Você não libera o objeto enumerador e não pode redefini-lo. Se você deseja recomeçar, solicite um novo objeto de enumerador no dicionário.
fonte
Você pode usar
-[NSDictionary allKeys]
para acessar todas as chaves e fazer um loop através delas.fonte