Хорошо, для начала я немного упростил бы это, заменив массив игроков новой переменной 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
объектов в этом л. oop, сначала проверьте didEndInTurnover
. Затем вам нужны целочисленные переменные для каждого отряда и каждый didEndIn...
(так что-то вроде int squadAScore
, int squadBScore
, int squadATurnover
, int squadBTurnover
и т. Д.). Когда вы зацикливаетесь, проверьте, какая команда была активна для этого владения, и увеличьте счетчик целых чисел для этого отряда, если это необходимо. Наконец, просто сравните свои целые счетчики, как только вы зациклились на всех предметах, чтобы узнать, какой из них больше.
Обратите внимание, что если вы хотели бы организовать это немного лучше или сделать его более гибким и менее жестко запрограммированным, вы, вероятно, можете изучить использование вложенных NSDictionaries вместо целых счетчиков - потребуется немного больше работы, чтобы настроить как словари , но если вам нужно добавить новый отряд позже или что-то в этом роде, может быть проще сделать такие изменения в будущем.
Ну, я не знаю, является ли это понятным или нет. Если это действительно не имеет смысла, я мог бы попытаться ввести код того, что будет выглядеть в цикле, просто дайте мне знать.
EDIT: Вот некоторые примеры того, что цикл будет выглядеть, используя словари:
// 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 ...
}
}
Хороший чат: P, но не понял вопрос. –
Есть ли неограниченная комбинация игроков, или, вероятно, группа игроков всегда будет вместе? Другими словами, вы смотрите на игроков по отдельности или пытаетесь сравнить что-то вроде Line 1 vs Line 2 или Squad A vs Squad B или что-то в этом роде, где группа игроков всегда будет вместе? – GeneralMike
@GeneralMike да, это именно то, что я собираюсь, сравнивая команду A vs Squad B, но по существу я пытаюсь сравнить каждую команду, появившуюся во время игрового объекта, и найти отряд, который произвел самые обороты ... Это делает смысл? – Luke