timestamp e velocidade de cálculo de um furto

Ei, eu sei que já existem alguns posts sobre isso - mas ainda não consigo encontrar uma resposta adequada para o problema que estou tendo.

Apenas novo no cacau e no iOS, estou no meio do desenvolvimento do meu primeiro jogo para iOS. Neste jogo eu gostaria de poder calcular a velocidade do furto de um usuário. Não tenho dificuldade em encontrar a distância entre os toques sucessivos no movimento do furto, mas estou tendo dificuldade em determinar o tempo decorrido entre os toques

emtouchesMoved: Eu faço cálculos com o toque atual e acompanho o último toque gravado anteriormente como um UITouch

emtouchesEnded: Agora quero calcular a velocidade do furto, mas quando faço algo como:

double timeDelay = event.timestamp - self.previousTouch.timestamp;

isso sempre retorna 0.

No entanto, usando o gcc, sou capaz de ver que os dois timestamps não são de fato os mesmos. Além disso, ao inspecionar, vi que os valores NSTimeInterval para esses eventos estavam na magnitude de ~ 10 ^ (- 300). Isso parece estranho, já que um NSTimeInterval deve informar segundos desde o início do sistema, não é?

Eu também tentei acompanhar o NSDate do toque anterior e usá-lo com conjunção com [NSDate timeIntervalSinceNow]. Isso produziu resultados ainda mais estranhos, retornando um valor em torno de 6 a cada vez. Mais uma vez, desde timerIntervalSinceNow retorna umNSTimeInterval, esse valor é muito estranho.

O que eu não entendo sobre timestamps? eventos? Qualquer ajuda neste assunto seria altamente apreciada! Obrigado pelo seu tempo

algum código de suporte:

Em sampleController.h:

@property(nonatomic) UITouch* previousTouch
@property(nonatomic) UITouch* currentTouch

Em sampleController.m:

@synthesize previousTouch = _previousTouch, currentTouch = _currentTouch;
...
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
       self.currentTouch = [[event allTouches] anyObject];
       // do stuff with currentTouch
}
...
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
       self.previousTouch = self.currentTouch;
       self.currentTouch = [[event allTouches] anyObject];
       // do stuff with currentTouch
}
...
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
       float distanceMoved = [self.touch locationInView:self.playView].x - 
              [self.touch previousLocationInView:self.playView].x;
       // attempt 1
       double timeElapsed = self.currentTouch.timestamp - self.previousTouch.timestamp;

       // attempt 2
       double timeElapsed = event.timestamp - self.previousTouch.timestamp;

       // do stuff with distanceMoved and timeDelay
}

questionAnswers(1)

yourAnswerToTheQuestion