【问题标题】:Mach Time stops counting when ios device sleeps当 ios 设备休眠时,马赫时间停止计数
【发布时间】:2012-02-16 10:25:33
【问题描述】:

基本上,要获取 iOS 设备的绝对时间,我需要使用 mach_absolute_time()。从另一个资源中,我发现 MachTime 在设备“重新启动”时开始计数。我认为这意味着只有在完全关闭并重新启动设备时,MachTime 才会重置然后一直运行。

但是,我的经验是,当设备休眠一段时间时,MachTime 停止计数,并在您唤醒设备时恢复。这意味着 MachTime 不能可靠地用作时钟计数。

有人遇到过同样的问题吗?

感谢阅读。

来源:https://developer.apple.com/library/mac/#qa/qa1398/_index.html

【问题讨论】:

  • 您是否正在尝试解决某个特定问题?
  • 好吧,我只想创建一个不能在“设置”中更改的独立时钟。即使用户休眠设备,它也应该继续运行。
  • 为什么需要继续运行?它提供什么功能?
  • 假设秒表是 iPhone 中的默认值。当用户启动时钟时,它可能不受任何其他因素的影响(如更改设置中的时间、使设备休眠),除非用户手动停止它。否则记录时间会不准确。 Apple 默认秒表无法做到这一点。

标签: iphone ios ipad


【解决方案1】:

如果mach_absolute_time 不能满足您的要求,请尝试使用其他 API。 CFAbsoluteTimeGetCurrent 似乎是个不错的候选人。

【讨论】:

  • 根据 Apple Time Utilities Reference 关于 CFAbsoluteTimeGetCurrent:由于与外部时间参考同步或由于用户明确更改时钟,系统时间可能会减少。因此,它也会被改变,无论如何感谢您的建议:)
猜你喜欢
  • 1970-01-01
  • 2019-08-23
  • 2014-10-27
  • 1970-01-01
  • 2012-08-23
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多