Не уверен, что я получу ваш вопрос, но я его опробую.
Во-первых, objectForKey:
- это метод, используемый как valueForKey:
для кодирования значения ключа и даст вам странный результат.результаты, если ваш ключ начинается с @.
Затем, если objectForKey:
возвращает указатель (т. е. возвращаемое значение не nil
/ NULL
/ 0
), тогда ключ существует и имеетзначение (которое было возвращено).Так что да, вы можете сделать:
if ([array3 objectForKey:temp]) {
// Do something, the dictionary does contain a value for
// the key referenced by "temp".
}
Теперь, если ваши ключи имеют строку типа @"123"
, тогда вы, конечно, можете сделать [array3 objectForKey:@"123"]
.Но если у вас есть целое число, вам нужно будет набрать [array3 objectForKey:[NSString stringWithFormat:@"%d", 123]]
.
Также обратите внимание, что вы также можете использовать NSNumber
или NSValue
в качестве ключей.Так что вы могли бы сделать:
[myMutableDictionary setObject:someObject forKey:[NSNumber numberWithInt:123]];
myValue = [myMutableDictionary objectForKey:[NSNumber numberWithInt:123]];
if (myValue) {
// Do something.
}