Ключ NSDictionary для значения/объекта?

Можно ли получить ключ для объекта в NSDictionary путем передачи определенного значения или объекта?

Ответ 1

-[NSDictionary allKeysForObject:] возвращает NSArray всех ключей, объекты которых соответствуют переданному объекту, где "соответствие" определяется isEqual:.

Ответ 2

Чтобы ответить на вопрос более конкретно, используйте следующее, чтобы получить ключ для определенного объекта:

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

Ответ 3

Вот как вы можете получить первый ключ для объекта (в случае, если это NSString):

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

Это обрабатывается, если объект не найден в словаре.