2017-02-12 9 views
0

私は1秒未満の遅延を作ろうとしています。私はこのコードをウェブから見つけました。ただし、1秒未満の遅延は受け付けません。スウィフトのグランドディスパッチコンセプトは、私にとって謎のビットです。このコードを変更して0.3秒の遅延を作成するにはどうすればよいですか?Swift 3.0:1秒未満の遅延

まあ、それは非常に簡単です、秒を使用していない
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

だけDispatchTime.now()にごreqired時間を追加し、

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(締切:.now()+ 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

関連する問題