나는 이벤트가 포함 된 사전을 가지고 있습니다. 하나 개의 이벤트에 대한 형식이사전에 동일한 값이 둘 이상인 경우 효과적인 방법을 알아야합니다.
{
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"];
}
}
}
}
내 jQuery과에 나는이 그래서 당신이 이벤트 유형이 동일 행사의 배열에 1 개 이상의 이벤트가있는 경우 그러니까 기본적으로
NSMutableDictionary *gameInfoObject =[_events objectAtIndex:indexPath.row];
위의 코드에 무엇을 무엇인지 알고
"옐로우 카드 노란색 & 레드 "당신이 NSCountedSet를 사용에
질문과 관련이 없지만'[NSString stringWithFormat : @ "StringWithNoFormattingSpecifiers"]'는'@ "StringWithNoFormattingSpecifiers"'를 작성하는 데 비용이 많이 듭니다. '-valueForKeyPath :'를 하나의 요소만을 가진 경로로 사용하지 마십시오. '-valueForKey :'를 사용할 수는 있지만, 키가 하드 코딩 된 경우에는 그렇게하지 마십시오. 사전의 경우'-objectForKey :'를 사용하십시오. 다른 객체의 경우 속성에 대한 getter를 호출하기 만하면됩니다. –
지적 해 주셔서 감사합니다! 내가 열쇠에 대한 개체로 변경해야하지만 나는 @ "StringWithNoFormattingSpecifiers"구현하는 방법을 얻지 못했습니다. 이 줄이 어떻게 보이나요? : [[obj objectForKey : [NSString stringWithFormat : @ "eventType"]] @KenThomases –
[obj objectForKey : [NSString stringWithFormat : @ "eventType"]] obj [@ "eventType "] Modern Objective-C – dirkgroten