我正在努力了解如何正确使用NSDates。

我有一个实例化timingDate = [NSDate date];的事件

然后,我稍后讨论如何记录用户触摸之间的时间间隔。
因此,我想找到timingDate和用户触摸之间的间隔(以毫秒为单位)。
然后,我想将TimingDate重置为与touchTime相等,以便下次触摸屏幕时,可以找到上一次触摸和当前触摸之间的差异。我希望这是有道理的。但是我绕圈走,因为我不知道如何使用NSDates或NSIntervals。属性间隔touchTime和TimingDate当前均为NSDate类型-对吗?

所以我尝试了很多不同的事情,例如

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    touchTime = timingDate;
    interval  = [[NSDate date] timeIntervalSinceDate:timingDate]; // should be the time difference from when the timingDate was first set and when the user touched the screen.
    touchTime = [[[NSDate date]timeIntervalSinceDate:timingDate]doubleValue];
    timingDate = [NSDate dateWithTimeIntervalSinceReferenceDate:touchTime];
    NSLog(@"Time taken Later: %f", [[NSDate date]timeIntervalSinceDate:timingDate]);
  }

最佳答案

您的代码有点复杂!您只需要计算timingDate和触摸发生时间之间的时差,然后将timingDate设置为当前时间,以便可以对每个触摸事件执行此计算。

要查找timingDate和第一次触摸之间的时差,可以将NSDate的timeIntervalSinceDate与当前时间一起使用。这将返回NSTimeInterval值,该值表示以毫秒为单位的时间值(以毫秒为单位)。这是一个例子:

NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:timingDate];
NSLog(@"Time taken: %f seconds / %f milliseconds",timeInterval,timeInterval*1000);

然后,为了将您的TimingDate设置为当前时间,只需使用timingDate = currentDate;即可。这将使您能够连续测量触摸之间的时间差。

关于ios - NSDates和TimeIntervals,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26130681/

10-10 22:10