web-dev-qa-db-fra.com

Clé NSDictionary pour valeur / objet?

Pouvons-nous obtenir la clé d'un objet dans un NSDictionary en passant une valeur ou un objet particulier?

79
Syed Absar

-[NSDictionary allKeysForObject:] renvoie un NSArray de toutes les clés dont les objets correspondent à l'objet transmis, où "match" est déterminé par isEqual:.

147
Josh Caswell

Pour répondre à votre question d'une manière plus spécifique, utilisez ce qui suit pour obtenir une clé pour un objet particulier:

NSString *knownObject = @"the object";
NSArray *temp = [dict allKeysForObject:knownObject];
NSString *key = [temp lastObject];

//"key" is now equal to the key of the object you were looking for
43
AddisDev

Voici comment obtenir une première clé pour un objet (dans le cas où il s'agit d'un NSString):

NSArray *keys = [yourDic allKeysForObject:yourObject];
NSString *yourKey;
if ([keys count] > 0) {
   yourKey = keys[0];
}

Cela gère si l'objet n'est pas trouvé dans le dictionnaire.

3
wzbozon