2017-02-12 107 views
0

我試圖讓延遲時間少於一秒。我從網上找到了這段代碼。但它不會接受不到一秒鐘的延遲。 Swift中的Grand Dispatch概念對我來說有點神祕。我應該如何修改此代碼以創建0.3秒的延遲?Swift 3.0:延遲不到一秒

let deadlineTime = DispatchTime.now() + .seconds(1) //how to get 0.3 seconds here 
    DispatchQueue.main.asyncAfter(deadline: deadlineTime) {   
     //code here 
    } 

回答

4

嗯,這是很容易的,不要用秒,使用毫秒:

let deadlineTime = DispatchTime.now() + .milliseconds(300) // 0.3 seconds 
+2

或者:'讓deadlineTime = DispatchTime.now()+ 0.3' –

1

只是你reqired時間添加到DispatchTime.now(),你會得到一個結果

let deadlineTime = DispatchTime.now() + 0.3 //Here is 0.3 second as per your requirement 
    DispatchQueue.main.asyncAfter(deadline: deadlineTime) {   
     //code here 
    } 
+0

甚至只是'DispatchQueue.main.asyncAfter(截止日期:。現在()+ 0.3)' – vacawama

+0

有這個答案中沒有新東西,它只是重複包括評論的第一個。 –

-1

使用這個,會起作用

let delay = 2.5 * Double(NSEC_PER_SEC) 
let time = DispatchTime.now() + Double(Int64(delay))/Double(NSEC_PER_SEC) 

DispatchQueue.main.asyncAfter(deadline: time, execute: { 
    self.view_Alert.alpha = 0 
}) 
0
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { 
    // your method after delay 
} 

請記住,這將在主線程上執行。如果你想,否則,檢查DispatchQueue.global(qos:)this reference