我正在努力了解如何正确使用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/