Хорошо, для начала я бы немного упростил это, заменив массив игроков новой переменной NSString, которая просто говорит, для какого отряда эти данные (так что у вас будет переменная NSString *squadName
(и вы должны установить posession1.squadName = @"Squad A"
или что-то подобное ) как свойство вашего объекта Possession
вместо массива игроков.Если вы хотите распечатать имена или номера игроков, вы всегда можете настроить массив или словарь где-нибудь еще, который содержит эту информацию для вывода на экран - что-то вроде
NSArray squad1Array = [NSArray arrayWithObjects:@"Bill",@"Tom",@"Joe",nil];
NSArray squad2Array = [NSArray arrayWithObjects:@"Jim",@"Jeff",@"Mike",nil];
После того, как вы настроите отряды, вам нужно будет просмотреть массив из Possession
объектов. В этом цикле сначала проверьте didEndInTurnover
. Затем вам нужны целочисленные переменные для каждого отряда и каждого didEndIn...
(что-то вроде int squadAScore
, int squadBScore
, int squadATurnover
, int squadBTurnover
и так далее). Когда вы проходите цикл, проверьте, какой отряд был активен для этого владения, и увеличьте целочисленный счетчик для этого отряда по мере необходимости. Наконец, просто сравните свои целочисленные счетчики после того, как вы перебрали все владения, чтобы увидеть, какое из них больше.
Обратите внимание, что если вы хотите организовать это немного лучше или сделать его более гибким и менее жестко закодированным, вы, вероятно, могли бы рассмотреть использование вложенных NSDictionaries вместо целочисленных счетчиков - потребуется немного больше работы, чтобы настроить как словари, но если вы нужно добавить новый отряд позже или что-то в этом роде, возможно, в будущем будет проще внести такие изменения.
Ну не знаю понятно это или нет. Если это на самом деле не имеет смысла, я мог бы попытаться написать код того, как примерно будет выглядеть цикл, просто дайте мне знать.
РЕДАКТИРОВАТЬ: Вот пример того, как будет выглядеть цикл, используя словари:
// Define counters for squads
NSMutableDictionary *turnoverDictionary = [[NSMutableDictionary alloc] init];
NSMutableDictionary *scoreDictionary = [[NSMutableDictionary alloc] init];
// Loop over all possessions
for (YourPossessionClass *currentPossession in myTeamStats.possessionArry)
{
if (currentPossession.didEndInTurnover == YES)
{
BOOL found = NO;
for (NSString *squad in [turnoverDictionary allKeys])
{
if ([squad isEqualToString:currentPossession.squad])
{
int count = [[turnoverDictionary objectForKey:squad] intValue];
count ++;
NSNumber *newCount = [NSNumber numberWithInteger:count];
[turnoverDictionary setObject:newCount ForKey:squad];
found = YES;
}
//else {Do Nothing - this isn't the squad we want}
}
// Add a new entry to the dictionary for this squad if this squad didn't exist before
if (!found)
{
[turnoverDictionary setObject:[NSNumber numberWithInt:0] forKey:currentPossession.squad];
}
//else {Do Nothing - squad was already in dictionary}
}
else if {currentPossession.didEndInScore == YES}
{
// ... Do all the same stuff as we did for turnover, except now add them to the scoreDictionary instead of the turnoverDictionary ...
}
}
person
GeneralMike
schedule
06.03.2013