2012-04-20 1 views
0

Что такое хороший способ просмотра NSMutableDictionary, чтобы узнать, есть ли ключ, который соответствует другой переменной?NSMutableDictionary value lookup

Допустим, у меня есть «тест» NSString и изменяемый словарь, который имеет некоторые значения и ключи NSString для этих значений.

Что было бы хорошим способом прочитать значения словаря, чтобы увидеть, есть ли какой-либо из его ключей «тест».

Должен ли я иметь цикл for для чтения значений словаря или есть что-то уже часть объекта NSDictionary, который сделает это, что я не вижу.

ответ

3

Вы можете использовать метод keysOfEntriesPassingTest:, чтобы найти все ключи, в которых значение равно @"test".

В реализации ниже будет найден только первый ключ. Если вам нужны все ключи, где объект @"Test", не назначайте *stop.

NSString *target = @"test"; 
NSSet *keys = [myDictionary keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop) { 
    return (*stop = [target isEqual:obj]); 
}]; 
+0

Ницца, краткий ответ. :) –

2

Если то, что вы хотите, это только один, ключ именно «тест», я думаю, вы можете просто использовать objectForKey:, чтобы попытаться получить соответствующий объект. Если ключ не существует, возвращаемый объект будет равен нулю.