Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone上访问小于1秒的系统时间_Iphone_Time - Fatal编程技术网

如何在iPhone上访问小于1秒的系统时间

如何在iPhone上访问小于1秒的系统时间,iphone,time,Iphone,Time,系统时间函数时间(0)给了我1秒的分辨率,对吗 是否有更细粒度的函数 我用它来确定两个事件之间的时间间隔。 一行代码会对我有很大帮助。当我查看官方文档时,可以更容易地找到具体的概念。您是否查找了gettimeofday()?这是用于亚秒分辨率计时的主要POSIX函数,类似于time() 有关其用法的说明,请参见 self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval

系统时间函数时间(0)给了我1秒的分辨率,对吗

是否有更细粒度的函数

我用它来确定两个事件之间的时间间隔。


一行代码会对我有很大帮助。当我查看官方文档时,可以更容易地找到具体的概念。

您是否查找了
gettimeofday()
?这是用于亚秒分辨率计时的主要POSIX函数,类似于
time()

有关其用法的说明,请参见

self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval
                       target:self selector:@selector(drawView) userInfo:nil
                       repeats:YES];

这是OpenGL应用程序模板的一个片段。如果你正在寻找一个高分辨率的计时器,它可能就是你所需要的。

NSDate
timeintervalncedate:
方法,该方法返回
double
(“苹果说,10000年内的精度为亚毫秒”)

见:


如果您发现
cfAbsoluteTime
太冗长,您可以简单地使用
double
来代替。

您可以在一个句子中使用它吗?如何从中获得小于一秒的间隔?返回值为double,只需乘以1000就可以得到毫秒,或者乘以1e6就可以得到μs。当我将“do something”行留空时,我得到的结果是0。原来计时器不能测量这么小的间隔。一旦我把一些陈述放在中间,我就得到了一个结果。感谢您使用实际的工作代码,而不是引用方法名或文档链接。有时候文档一开始对我来说太抽象了。我太习惯于这个函数了,以至于一开始我没有想到为什么需要一个例子,对不起。快乐的黑客!你知道如何使用它来计算两次之间的差异吗?使用TimeIntervals,然后进行比较。它是以秒为单位给出的,但有很多小数位-所以你可以乘以1000得到毫秒,等等…+1,用于像我要求的那样放入实际代码。谢谢@zoul.Holy smokes,我的问题已经出现在“系统时间(0)”的谷歌结果中。这很重要:该值是从CFAbsoluteTimeGetCurrent返回的:是以秒为单位的双精度,但分辨率不是以秒为单位的。这是亚毫秒。我发现苹果的文档在这一点上有误导性。
NSDate *start = [NSDate date];
…
NSTimeInterval duration = [[NSDate date] timeIntervalSinceDate:start];
CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
// do something you want to measure
CFAbsoluteTime end = CFAbsoluteTimeGetCurrent();
NSLog(@"operation took %2.5f seconds", end-start);