【发布时间】:2018-05-05 01:20:22
【问题描述】:
我创建了一个简单的项目来测试mach_wait_until() 的功能。此代码为我提供了 1 秒延迟有多精确的准确打印输出。在 iOS 模拟器和我的 iPad Air 2 上,控制台打印输出几乎相同且极其精确。但是,在我的 iPad 上,有一个巨大的延迟,同样的 1 秒延迟大约需要 100 秒!更奇怪的是,控制台中的打印输出说它只需要 1 秒(具有极低的抖动和/或延迟)。
这怎么可能?使用mach_wait_until()时,我需要为物理iOS设备做一些时间转换吗?
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
playNoteTest()
}
var start = mach_absolute_time()
var end = mach_absolute_time()
func playNoteTest() {
let when = mach_absolute_time() + 1000000000
self.start = mach_absolute_time()
mach_wait_until(when)
self.end = mach_absolute_time()
let timeDelta = (self.end - self.start)
let newTimeDelta = Double(timeDelta) / 1000000000.0
print("Delta Time = \(newTimeDelta)")
playNoteTest()
}
}
【问题讨论】:
标签: ios swift timer ios-simulator