У меня есть словарь, содержащий события. Формат для одного события выглядит следующим образомЭффективный способ узнать, имеет ли словарь более двух одинаковых значений
{
eventTime = 53';
eventType = "Yellow Card";
gameID = 0;
name = Mike;
selectedTeam = homeTeam;
}
И я спас все события в NSMutableArray
. Клиенты будут вставлять события со временем (для футбольной игры). Теперь мне нужно проверить при заполнении моего UITableView
, если у игрока есть две желтые карточки, поэтому я могу изменить изображение на другое изображение. То, как я делаю это сейчас, выглядит так, и мне это не очень нравится, и на самом деле это не работает.
if ([typeEvent isEqualToString:@"Yellow Card"]){
int i= 0;
for (id obj in _events)
{
if ([[obj valueForKeyPath:[NSString stringWithFormat:@"eventType"]] isEqualToString:@"Yellow Card"] && [[obj valueForKeyPath:[NSString stringWithFormat:@"name"]] isEqualToString:[gameInfoObject valueForKeyPath:[NSString stringWithFormat:@"name"]]]) {
i++;
if (i >= 2) {
imageType = [UIImage imageNamed:@"Yellow&Red.png"];
}
}
}
}
и в моем UITableView я делаю это так, вы знаете, что это то, что в приведенном выше
NSMutableDictionary *gameInfoObject =[_events objectAtIndex:indexPath.row];
Так в основном коде, если есть больше чем 1 событие в СОБЫТИЙ массиве, где типСобытия равно «Yellow Card "и название этих матчей мне нужно изменить изображение в„Желтый & Красный“
Спасибо вам помочь
Не имеет отношения к вашему вопросу, но: '[NSString stringWithFormat: @" StringWithNoFormattingSpecifiers "]' является просто дорогим способом записи '@" StringWithNoFormattingSpecifiers ". Не используйте '-valueForKeyPath:' с пути, который, как вы знаете, имеет только один элемент. Вы можете использовать '-valueForKey:', но не делайте этого, когда ключ жестко закодирован. Для словаря используйте '-objectForKey:'. Для других объектов просто вызовите getter для свойства. –
Спасибо, что указали это! Я получил, что я должен изменить его на объект для ключа, но я не понял, как реализовать @ "StringWithNoFormattingSpecifiers". Пример, как бы выглядела эта строка ?: [[obj objectForKey: [NSString stringWithFormat: @ "eventType"]] @KenThomases –
[obj objectForKey: [NSString stringWithFormat: @ "eventType"]] может быть написано: obj [@ "eventType "] в современной Objective-C – dirkgroten