Я использую основные движения в своем приложении.У меня есть объект motionManager, назначенный свойству в моем основном классе.Что-то вроде
@property (nonatomic, retain) CMMotionManager *motionManager;
каждый раз, когда я буду использовать движение ядра, я назначаю его, используя что-то вроде:
- (void) initializeCoreMotion {
CMMotionManager *myMotionManager = [[CMMotionManager alloc] init];
self.motionManager = myMotionManager;
[myMotionManager release];
}
Затем, на методе, который выбирает эти данные, я должен прочитатьотметка времени выборки.
CMDeviceMotion *motion = self.motionManager.deviceMotion;
timestamp = motion.timestamp;
if (firstTime) {
timestampReference = timestamp;
firstTime = NO;
} else {
timestamp = timestamp - timestampReference;
}
То есть: при первой выборке сохраняется начальное значение.В последующие моменты выборки текущее значение будет вычитаться из ссылки, чтобы узнать, сколько секунд прошло.
Проблема заключается в следующем.Предположим, я пробую один раз в секунду.Я первый образец в течение 10 секунд.Таким образом, переменная метки времени будет иметь вид 0, 1, 2, 3, 4, 5 ... 10.Тогда я останавливаюсь и не пробую 20 секунд.Когда я начну пробовать снова.Во второй раз отметка времени начнется с 31, 32, 33, 34 ...
Я проверил метод выборки, и firstTime равен YES каждый раз, когда происходит первая выборка ...
любаямысли?Как мне это сбросить?
спасибо.