2015-03-13 2 views
-3

Я пытаюсь установить изображение в соответствии со значением ключа в словаре. Поэтому я не пишу кучу if-else, я пытаюсь выяснить, могу ли я пропустить значения в массиве и посмотреть, соответствует ли он ключу в словаре.Objective C - Проверить, является ли объект в массиве ключом словаря

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

NSDictionary *dict=[gamesArray objectAtIndex:indexPath.row]; 
    [cell.infTeam1 setText:[dict objectForKey:HOME_TEAM_NAME]]; 
    [cell.infTeam2 setText:[dict objectForKey:AWAY_TEAM_NAME]]; 
    NSArray *teams = [[NSArray alloc]initWithObjects:@"Bucks",nil]; 

    for (NSString *team in teams) { 
     if ([team isEqualToString:dict[@"homeTeamName"]]) { 
      // add image 
     } 
    } 

Но я получаю Thread 1: ошибка EXC_BAD_ACCESS на мои команды массива. Любая помощь приветствуется.

+1

сообщение фактический код вызывает ошибку. Укажите точную строку, вызывающую ошибку. – rmaddy

+0

мой массив групп выделен темой 1: ошибка EXC_BAD_ACCESS – OSU222

+0

Можете ли вы также опубликовать трассировку стека Плохой доступ? – Raspu

ответ

0

[dict valueForKey:@"homeTeamName"] возвращает строку, а не массив там для строки не имеет containsObject:.

Что вы хотите, это:

for (NSString *team in teams) { 
    if ([team isEqualToString:dict[@"homeTeamName"]]) { 
     // the home team is part of teams 
     // you might want to add a break statement to stop the loop 
    } 
} 
+0

Одновременный ум, но сообщение об ошибке ставит под сомнение это объяснение. – danh

+0

@bensarz Я до сих пор получаю ту же ошибку, используя это – OSU222

+0

Там так много недостающего контекста. Я дал ответ на то, что OP хочет сделать. Там, где «команды» заданы или взяты, это может быть другой проблемой. – bsarrazin

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