2010-07-05 1 views
0

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

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

Моя Enumerating логика:

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); 

    }} 

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

ответ

2

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

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

Вы хотите исключить (А или В), но вы переворачивая все выражение, чтобы выбрать, что включать, так и должно быть (! А И B!)

+0

Wow. Я думаю, что сегодня я слишком много стараюсь! Конечно, это фиксировало проблему. Спасибо за объяснение, как хорошо! – Zigrivers

Смежные вопросы