我使用该功能在我的代码中添加延迟
func delayWithSeconds(_ seconds: Double, completion: @escaping () -> ()) {
DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
completion()
}
}
这是我调用延迟函数的代码
delayWithSeconds(2) {
//executed after a delay
//just to print out the time
let time_now = DispatchTime.now()
print("time_now")
print(time_now)
}
当我运行测试时,有可能它从未运行过
delayWithSeconds(2)
中的代码(这意味着“延迟执行”注释后的代码未执行)。函数中的.now() + seconds
是否可能溢出?所以它不能去completion()
?
我尝试使用调试器来检查时间
DispatchTime.now()
但这确实是一个极端情况,我看不到它!