Obtenha todas as chaves de um NSDictionary como um NSArray

86

É possível obter todas as chaves de um específico NSDictionarycomo um separado NSArray?

Jay
fonte

Respostas:

184

Apenas use

NSArray*keys=[dict allKeys];

Em geral, se você quer saber se uma classe específica possui um método específico, consulte a documentação da própria Apple . Nesse caso, consulte a referência de classe NSDictionary. Passe por todos os métodos. Você descobrirá muitos métodos úteis dessa maneira.

Yuji
fonte
3
Para obter a primeira chave apenas é NSString * firstKey = [dict allKeys] [0];
Mazen Kasser
2
@MazenKasser firstObjecté uma solução mais segura - caso o dicionário não tenha nenhuma chave, o aplicativo não travará:dict.allKeys.firstObject;
Islam Q.
1
a ordem das chaves retornada por allKeys é indefinida ... então allKeys.firstObject ou allKeys] [0] é perigoso de qualquer maneira
Brad Thomas
16

Sim é possivel. Use o método allKeys :

NSDictionary *yourDictionary;
NSArray * yourKeys
yourKeys = [yourDictionary allKeys];
gsempe
fonte
3

E se você deseja obter todas as chaves e valores , faça o seguinte:

for (NSString *key in dictionary) {
    id value = dictionary[key];
    NSLog(@"Value: %@ for key: %@", value, key);
}
código horrível
fonte