если еще в nsdictionary - PullRequest
       1

если еще в nsdictionary

0 голосов
/ 22 сентября 2010

у меня есть словарь массива:

    array3 = [[NSDictionary dictionaryWithContentsOfFile:docpath2] retain]; 

здесь нет проблем.теперь у меня есть NSString * temp, который содержит несколько чисел.Я хотел бы проверить, существует ли этот номер в словаре, а не в каждом массиве.

    if([array3 valueForKey:temp])

это правильно?цикл if не выполняется, если его true?

<dict>
     <key>123456</key>
     <array>
        <string>low</string>
        <string>High</string>
     </array>
      <key>78910</key>
    <array>
         <string>low</string>
         <string>High</string>
     </array>
  </dict>

, например, temp = 78910, я бы хотел, чтобы его нашли.

thks in adv

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Не уверен, что я получу ваш вопрос, но я его опробую.

Во-первых, 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.
}
0 голосов
/ 23 сентября 2010

Это должно работать просто отлично. Почему вы думаете, что это не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...