我收到来自 CADisplayLink 的回调。该链接在 CFTimeInterval 中有一个时间戳。如何将该时间戳转换为 uint64 中的主机时间?
谢谢!
我收到来自 CADisplayLink 的回调。该链接在 CFTimeInterval 中有一个时间戳。如何将该时间戳转换为 uint64 中的主机时间?
谢谢!
这是描述将马赫时间转换为秒的文档。 https://developer.apple.com/library/ios/qa/qa1643/_index.html
#include <mach/mach_time.h>
...
struct mach_timebase_info timeBaseInfo;
mach_timebase_info(&timeBaseInfo);
CGFloat clockFrequency = (CGFloat)timeBaseInfo.denom / (CGFloat)timeBaseInfo.numer;
clockFrequency *= 1000000000.0;
// clock frequency (for me) is 24000000
因为 CGTimeInterval 以秒为单位,我们可以简单地这样做:
uint64_t displayLinkTime = displayLink.timeStamp * clockFrequency;