У меня есть вопрос, касающийся NSMutableArray, и это alloc / init как глобальная вещь.
Что я хочу сделать: заполнить NSMutableArray значениями ускорения, если бинарная переменная «разрешение» установлена в значение «истина».Кроме того, я хочу остановить запись в массиве, когда я установил разрешение на false, а затем записать массив в файл, который я отправил по электронной почте с телефона.Я программировал весь день (возможно, я не самый опытный программист) и исправил множество проблем, таких как настройка разрешений, ни один файл во вложении (это был ноль, tadaaa), используя этот форум, но для этой конкретной проблемы я не могу найтирешение.
Дело в том, что вложение равно нулю, и я не могу придумать решение.
Я делаю следующее в начале файла .m:
BOOL permission = NO; // key variable to enter recording / not recording state
int i = 0; //used to determine place in dataArray
NSMutableArray *dataArray; // axis values get dumped in here
Чтобы начать запись,
- (void)recordStart { //setting permission to yes
permission = YES;
}
это позволяет акселерометру: UIAccelerometer заполнять dataArray:
(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
if (permission == YES) {
// NSLog(@"%f"@"%f"@"%f",acceleration.x,acceleration.y,acceleration.z);
NSString *valueString = [NSString stringWithFormat:@"%f, %f,
%f",acceleration.x,acceleration.y,acceleration.z];
[dataArray addObject:valueString];
// NSLog(@"%i",i);
NSLog(@"Array Count: %d", [dataArray count]);
}
}
NSLog всегда возвращает 0, поэтомумассив пуст, и метод stop не может записать массив в файл, потому что он равен nil:
- (void)recordStop { //setting permission to no
NSLog(@"Array Count: %d", [dataArray count]);
[[dataArray componentsJoinedByString:@",\n"] writeToFile:[self setFileLocation] atomically:YES encoding:NSUTF8StringEncoding error:NULL];
// код пропущен
Нужно ли размещать массив где-то еще?тогда в глобальном масштабе? Я не могу сделать это в акселерометре: функция, потому что он будет просто делать это каждый раз, когда он срабатывает (я установил частоту 100 Гц)
Любые предложения?
ТНХ!