我不想在经过一定时间后设置一个“触发”(并做某事)的计时器。
因此,我对NSTimer
类及其方法不感兴趣。
所有我感兴趣的是计算在时经过的时间,例如,某些while循环正在执行。我可以使用NSDate
,如下所示:
NSDate currentDate = [[NSDate alloc] init];
while(someConditionIsTrue)
{
// executing..
}
timeElapsed = [self timeIntervalSinceDate:currentDate];
NSLog(@"time elapsed was: %i", timeElapsed);
但是,如果我理解正确,timeIntervalSinceDate:
只能计算秒数。
有没有办法可以计算在毫秒中经过的时间?
换句话说,我可以计算的最小单位是什么?以及如何计算?
答案 0 :(得分:9)
CFAbsoluteTime before = CFAbsoluteTimeGetCurrent();
CFAbsoluteTime after = CFAbsoluteTimeGetCurrent();
答案 1 :(得分:7)
你的第二种方法是正确的。将当前日期保存在NSDate
对象中,并使用timeIntervalSinceDate:
来获取自那时起的通过时间。结果将是NSTimeInterval
类型,它是一个浮点数。它以秒为单位指定时间差,但由于它是一个浮点数,因此它也可以存储几分之一秒。
NSTimeInterval总是以秒为单位指定;它产生了 在10,000年的范围内精确到亚毫秒级。