在Swift 2中,我能夠dispatch_after使用大型中央調(diào)度來延遲動(dòng)作: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貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
斯威夫特4:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {
// Code
}
對于時(shí)間.seconds(Int),.microseconds(Int)并且.nanoseconds(Int)也可使用。
阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您只想要延遲功能
斯威夫特4&5
func delay(interval: TimeInterval, closure: @escaping () -> Void) {
DispatchQueue.main.asyncAfter(deadline: .now() + interval) {
closure()
}
}
您可以像這樣使用它:
delay(interval: 1) {
print("Hi!")
}
- 3 回答
- 0 關(guān)注
- 1843 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
