Мой NSMutableArray не работает - PullRequest
0 голосов
/ 04 августа 2010

извините за мой глупый вопрос (новичок) Я получил демонстрационную программу Accelerometergraph для сайта Apple и хотел бы использовать NSMutableArray в значениях ускорения x.но мой NSMutableArray содержит только один объект, поскольку существует несколько проходных подпрограмм NSMutableArray и должен содержать то же количество объектов, что и счетчик, как показано в коде ниже

if(!isPaused)
{
    array = [[NSMutableArray alloc] init];

    [filter addAcceleration:acceleration];
    [unfiltered addX:acceleration.x y:acceleration.y z:acceleration.z];
    NSNumber *number = [[NSNumber alloc] initWithDouble:acceleration.x];
    [array addObject:number];

    ++a;
    if (a == 30)  // only check the # objs of mutablearray
    {
        sleep(2);
    }
    [filtered addX:filter.x y:filter.y z:filter.z];
}

Ответы [ 2 ]

3 голосов
/ 04 августа 2010

Похоже, вам не хватает какой-то петли. Код, который вы перечислили выше:

  • Уверен, что что-то не приостановлено.
  • Создает новый (пустой) изменяемый массив.
  • Добавляет значение в новый массив.
  • И выполняет какую-то другую работу.

Я предполагаю, что весь этот блок if {} находится внутри некоторого цикла. Вместо этого вам нужно выделить и инициировать изменяемый массив вне цикла.

1 голос
/ 05 августа 2010

Вы создаете новый массив каждый раз, когда вводится блок if, поэтому addObject: добавит объект только в последний созданный массив.

Кроме того, у вас есть объекты array и number. Каждый раз, когда вы выделяете объект, вы несете ответственность за его освобождение. Убедитесь, что вы знакомы с рекомендациями, изложенными в руководстве по программированию управления памятью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...