Мне нужна помощь в понимании того, как использовать инструменты отладки. Предыдущие сообщения в этой теме предлагают использовать NSZombie и устанавливать точки останова. Они не работают для меня, а это значит, что я не понимаю, как правильно их использовать - или как интерпретировать то, что они говорят мне.указатель, освобождаемый, не был выделен - как отлаживать в объекте Xcode c?
(я работает в вакууме, в основном - не один в моем рабочем месте или круг общения не делает Objective C программирование ...)
Вот код обижая. Моя идея - сделать движущийся массив из 100 объектов. Обычное motionDataArray вызывается методом motionManager startDeviceMotionUpdatesUsingReferenceFrame. Массив заполняется, и когда его длина достигает 100, он удаляет первый объект, поэтому в массиве всегда будет только 100 объектов. Таким образом, я полагаю, я могу принять среднее значение данных и избавиться от большого количества шума.
(я предполагаю, что это, вероятно, лучший способ для достижения этой цели, но вот что я придумал ...)
- (void) motionDataArray: (CMCalibratedMagneticField) field
{
NSDictionary *motionData = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble: motionManager.deviceMotion.gravity.x],@"gravity_x",
[NSNumber numberWithDouble: motionManager.deviceMotion.gravity.y],@"gravity_y",
[NSNumber numberWithDouble: motionManager.deviceMotion.gravity.z],@"gravity_z",
[NSNumber numberWithDouble: field.field.x],@"mag_x",
[NSNumber numberWithDouble: field.field.y],@"mag_y",
[NSNumber numberWithDouble: field.field.z],@"mag_z",
[NSNumber numberWithDouble: `enter code here`locationManager.heading.magneticHeading],@"mag_heading",
[NSNumber numberWithDouble: motionManager.deviceMotion.attitude.roll],@"roll",
[NSNumber numberWithDouble: motionManager.deviceMotion.attitude.yaw],@"yaw",
[NSNumber numberWithDouble: motionManager.deviceMotion.attitude.pitch],@"roll",
nil];
//NSLog(@"%d",[motionArray count]);
if([timerArray count] > arrayCount - 1)
{
int i = [timerArray count] - arrayCount;
for (int j = 0; j < i + 1; j++)
{
[motionArray removeObjectAtIndex:0];
}
}
[motionArray addObject:motionData];
}
код прекрасно работает в течение первых двух сотен итераций или поэтому, а затем происходит сбой и ошибка: освобожденный указатель не был выделен.
Любые хорошие указатели на то, как интерпретировать вывод из инструментов или любой другой методологии отладки, были бы большой помощью для меня, и я уверен, что для других тоже есть. Большое спасибо заранее ...
Tim Редфилд