在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起,似乎不再編譯了。在現(xiàn)代Swift中編寫此代碼的首選方法是什么?
3 回答

蕪湖不蕪
TA貢獻1796條經(jīng)驗 獲得超7個贊
斯威夫特4:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {
// Code
}
對于時間.seconds(Int),.microseconds(Int)并且.nanoseconds(Int)也可使用。

阿晨1998
TA貢獻2037條經(jīng)驗 獲得超6個贊
如果您只想要延遲功能
斯威夫特4&5
func delay(interval: TimeInterval, closure: @escaping () -> Void) {
DispatchQueue.main.asyncAfter(deadline: .now() + interval) {
closure()
}
}
您可以像這樣使用它:
delay(interval: 1) {
print("Hi!")
}
- 3 回答
- 0 關注
- 1800 瀏覽
添加回答
舉報
0/150
提交
取消