gpt4 book ai didi

objective-c - 在ios中获取实时时钟

转载 作者:行者123 更新时间:2023-11-28 22:58:58 24 4
gpt4 key购买 nike

我正试图找到一个关于在 ios 中测量时间的可靠解决方案。我想以 1 秒的精度显示时间的流逝。完全像 ios 内置的秒表,但只有几秒钟。到目前为止,我发现的每个解决方案似乎都很笨拙,因为它要么在 NStimer 的帮助下使用轮询或者一些喜欢 C 级的东西。我遇到的问题是,“我”每次都需要询问系统,几点了。但是如果我应该依赖不确定的 NStimer,那么我的测量是非常不可靠的。系统没有调用委托(delegate)方法来更新我的时间吗?我想如果我将轮询的分辨率提高到 1 ns,就可以了。但是我应该如何使用低级 C 来实现它呢?

最佳答案

我不确定你的目标是什么。我不知道你是想要查询高分辨率时间的好方法,还是想要系统给你回电。

如果是前者,这就是我用于高分辨率计时器的东西。

#import "mach/mach_time.h"

#define TICKS_TO_NANOS(_ticks_, _timebase_) (((_ticks_) * ((_timebase_).numer)) / ((_timebase_).denom))
#define NOW_IN_TICKS() (mach_absolute_time())
#define NOW_IN_NANOS(_timebase_) TICKS_TO_NANOS(NOW_IN_TICKS(), _timebase_)

如果是后者,那么您永远都无法获得有保证的回调计时器。最一致的计时器回调可能是连接到 CADisplayLink,但如果您的图形方法花费的时间太长,您可能无法始终如一地获得它。

您可以尝试系统计时器,但您也不会得到太多保证。

关于objective-c - 在ios中获取实时时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10306698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com