Nit*_*ish 0 grand-central-dispatch ios swift
我正在处理一些旧代码。以下是我无法转换或理解的两行(旧代码):
let dispatchTime = dispatch_time(dispatch_time_t(DispatchTime.now()), Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), block)
Run Code Online (Sandbox Code Playgroud)
现在,为了让它在Swift 4.x 中工作,这就是我为第 1 行所做的:
let dispatchTime = DispatchTime(uptimeNanoseconds: UInt64(Int64(seconds * Double(NSEC_PER_SEC))))
Run Code Online (Sandbox Code Playgroud)
我根据此处提到的初始化程序描述进行了此转换:
创建一个相对于系统时钟的时间,自启动以来滴答作响。
既然他们说它创建了一个相对时间,DispatchTime.now()就已经考虑过了。更不用说,我可能是错的。请纠正我。
对于第二行,我不知道如何DispatchTime在DispatchAfter.
这就是您在 Swift 3+ 中想要的:
let seconds = 2.0
// dispatchTime 2 seconds from now:
let dispatchTime: DispatchTime = DispatchTime.now() + seconds
DispatchQueue.main.asyncAfter(deadline: dispatchTime) {
// code to be executed
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |