Сложно исключать объекты на основе ключа при перечислении NSMutableDictionary - PullRequest
0 голосов
/ 06 июля 2010

Я в тупике. У меня есть NSMutableDictionary с вложенными словарями, которые я перечисляю для создания массива определенного значения ключа во вложенном словаре, но я хочу исключить два «ключа».

Я могу сделать это, если исключаю один ключ, но как только я пытаюсь использовать «||» или оператор в моем операторе If перестает работать и просто добавляет все объекты в мой новый массив вместо всех объектов, кроме двух, которые я пытаюсь отфильтровать.

Моя логика перечисления:

  for (NSString *key in self.myMutDictionary) {
   theBool = [key isEqualToString:@"First"];
   NSLog(@"Is key = to First? %@", (theBool ? @"YES" : @"NO"));

   if ((![key isEqualToString:@"First"]) || (![key isEqualToString:@"Second"])) {
    newDict = [self.myMutDictionary objectForKey:key];
    [self.filteredArray addObject:[newDict objectForKey:@"Third"]];
    NSLog(@"Filtered Array: %@", self.filteredArray);

   }}

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 06 июля 2010

Изменить || до &&

Если это не первый и не второй, то включите его.

Вы хотите исключить (A ИЛИ B), но вы инвертируете все выражение, чтобы выбрать, что включить, поэтому оно должно быть (! A И! B)

...