Пока цикл не останавливается с заданными критериями - PullRequest
0 голосов
/ 29 февраля 2012

У меня небольшая проблема с этим циклом while. Я продолжаю получать сбой, потому что он продолжает выполнять цикл, даже когда он обнаружил объект и предположительно увеличил int. Любые идеи у меня есть множество других петель, настроенных подобным образом, и все они работают нормально.

int possible = 0;

while (possible < [possibleAthetes count]) {
    if ([[[possibleAthetes objectAtIndex:possible]valueForKey:@"ID"]intValue] == [self.athleteID intValue]) {        
        [possibleAthetes removeObjectAtIndex:possible];
        possible = [possibleAthetes count] ;
    }
    possible ++;
}

1 Ответ

1 голос
/ 29 февраля 2012

Приращение возможно даже при удалении объекта.Разрыв из цикла.

Если вам нужно избавиться от нескольких спортсменов, пропустите разрыв (нет необходимости увеличивать из-за удаленного объекта).

int possible = 0;

while (possible < [possibleAthetes count]) {

    BOOL criteriaMatch = ([[[possibleAthetes objectAtIndex:possible]valueForKey:@"ID"]intValue] == [self.athleteID intValue]);

    if  (criteriaMatch){        
        [possibleAthetes removeObjectAtIndex:possible];
        break;
    } else {
        possible++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...