首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AbsoluteToNanoseconds(),Uptime()被弃用

AbsoluteToNanoseconds(),Uptime()被弃用
EN

Stack Overflow用户
提问于 2017-11-07 23:08:08
回答 1查看 594关注 0票数 0

我试图用较新的函数替换Xcode中的一些不推荐的函数,尽管我似乎不太明白如何使它正常工作:

代码语言:javascript
复制
AbsoluteTime startTime = UpTime();
float frameTime = UnsignedWideToUInt64(AbsoluteDeltaToNanoseconds(UpTime(),startTime))/1E9;

我收到以下两条警告:

代码语言:javascript
复制
'UpTime' is deprecated: first deprecated in macOS 10.8
'AbsoluteDeltaToNanoseconds' is deprecated: first deprecated in macOS 10.8

我在这里查看了其他各种线程,并尝试使用:

代码语言:javascript
复制
NSTimeInterval systemUptime = [[NSProcessInfo processInfo] systemUptime] / 1E9;

但是,它似乎没有返回相同的结果:

代码语言:javascript
复制
1: 0.011983 // deprecated function
2: 0.000431 // replacement function
1: 0.007218
2: 0.000431
1: 0.007084
2: 0.000431

我想我还需要做些什么才能得到新函数的正确值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 06:12:57

[[NSProcessInfo processInfo] systemUptime]以秒为单位返回正常运行时间,这不是UpTime()的替代品。mach_absolute_time()应该是UpTime()的一个简单的替代品。

至于AbsoluteDeltaToNanoseconds(),您可以编写代码来计算时间戳之间的绝对差异,我相信mach_absolute_time()在macOS上已经是纳秒了(但是您应该验证这一点)。然后,只要在进行除法时正确地将值转换为(uint64_t),就应该在浮点结果中具有相同的精度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47168914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档