簡體   English   中英

將DispatchTime作為參數傳遞給DispatchAfter

[英]Pass DispatchTime as an argument in DispatchAfter

我正在處理一些舊代碼。 以下是兩行代碼(舊代碼),我無法轉換或無法理解:

let dispatchTime = dispatch_time(dispatch_time_t(DispatchTime.now()), Int64(seconds * Double(NSEC_PER_SEC)))  
dispatch_after(dispatchTime, dispatch_get_main_queue(), block)  

現在,要使其在Swift 4.x中工作,這就是我對第1行所做的:

let dispatchTime =  DispatchTime(uptimeNanoseconds: UInt64(Int64(seconds * Double(NSEC_PER_SEC))))  

我根據此處提到的初始化程序描述進行了此轉換:

創建相對於系統時鍾的時間,該時間自引導以來開始計時。

由於他們說它創建了一個相對時間 ,因此已經考慮了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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM