【发布时间】:2020-03-23 14:24:45
【问题描述】:
我正在尝试在 iOS 中编写一个辅助方法,以允许我在秒(或纳秒)内使用 mach_absolute_time(),以便我可以找到时间导数传入的设备传感器数据。这是我的尝试:
#include <mach/mach_time.h>
- (double) convertMachAbsoluteTimeIntoSeconds:(uint64_t) mach_time {
mach_timebase_info_data_t _clock_timebase;
double nanos = (mach_time * _clock_timebase.numer) / _clock_timebase.denom;
return nanos / 10e9;
}
上面的代码正在编译,但我得到的当前警告是“'*' 的右操作数是垃圾值”。另外,在任何情况下它都不会返回一个合理的结果:/
根据我的阅读,mach_absolute_time() 有一些特质,所以我认为让这个工作可能对其他人有用。
所有帮助都慷慨地接受了。谢谢
//// 编辑 ////
感谢 Rob Napier 的超快速回答,下面是包含初始化的方法:
#include <mach/mach_time.h>
- (double) convertMachAbsoluteTimeIntoSeconds:(uint64_t) mach_time {
mach_timebase_info_data_t _clock_timebase;
mach_timebase_info(&_clock_timebase); // Initialize timebase_info
double nanos = (mach_time * _clock_timebase.numer) / _clock_timebase.denom;
return nanos / 10e9;
}
【问题讨论】:
-
FWIW,
CACurrentMediaTime()返回mach_absolute_time()转换为秒。 -
仅供参考,以后不要编辑您的问题以包含答案,请随时 post an answer to your own question。
-
会的,罗伯。我知道你发现了我的新手!
-
为了完整起见,用“Objective-C”标记它。有趣的问题!
标签: ios objective-c iphone time mach