如何在Swift 3、4和5中编写GCD中的dispatch_after?

在Swift 2中,我能够dispatch_after使用大型中央调度来延迟动作:


var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))) 

dispatch_after(dispatchTime, dispatch_get_main_queue(), { 

    // your function here 

})

但是自Swift 3起,似乎不再编译了。在现代Swift中编写此代码的首选方法是什么?


达令说
浏览 1719回答 3
3回答

芜湖不芜

斯威夫特4:DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {   // Code}对于时间.seconds(Int),.microseconds(Int)并且.nanoseconds(Int)也可使用。

阿晨1998

如果您只想要延迟功能斯威夫特4&5func delay(interval: TimeInterval, closure: @escaping () -> Void) {     DispatchQueue.main.asyncAfter(deadline: .now() + interval) {          closure()     }}您可以像这样使用它:delay(interval: 1) {     print("Hi!")}
打开App,查看更多内容
随时随地看视频慕课网APP