Синтаксическая ошибка цикла? - PullRequest
0 голосов
/ 16 марта 2012

У меня есть NSMutableArray, который я перебираю и пытаюсь найти среднее значение каждого набора из четырех, и устанавливаю среднее значение для индекса, который является первым значением в этом наборе.Вот что у меня есть:

    for (int i = 0; i < [romArray count] - 4; i++) {
        double a = [[romArray objectAtIndex:i] getValue] + [[romArray objectAtIndex:i+1] getValue] + [[romArray objectAtIndex:i + 2] getValue] + [[romArray objectAtIndex:i + 3] getValue];
        a /= 4;
        [romArray replaceObjectAtIndex:i withObject:[[Value alloc] initWithValues:[[romArray objectAtIndex:i] getTimestamp]  :a ]];
        [romArray removeObjectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(i + 1, 3)]];
        b++;
    }

    NSLog(@"%i", b);

b возвращается как 70 (из набора из 280), так что я знаю, что проблема не в i++.Когда цикл завершен, в массиве остается то же количество объектов, поэтому метод removeObjects не является на самом деле удалением объектов.Идеи, почему бы и нет?

1 Ответ

0 голосов
/ 16 марта 2012

1) Можете ли вы опубликовать еще код? Массив NSMutable не имеет метода "getValue".

2) Если ваш код работоспособен, то я, например, пытаюсь использовать этот массив {@ "1", @ "2", @ "3", @ "4", @ "5", @ "6"}. Count = 6. Цикл сделает 2 операции с удалением. После первого это будет массив {@ "1", @ "5", @ "6"}. Таким образом, вторая операция завершит программу с ошибкой, или вы получите массив {@ "1", @ "5"}. Это правильно?

...