在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中编写此代码的首选方法是什么?
3 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
斯威夫特4:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {
// Code
}
对于时间.seconds(Int),.microseconds(Int)并且.nanoseconds(Int)也可使用。
阿晨1998
TA贡献2037条经验 获得超6个赞
如果您只想要延迟功能
斯威夫特4&5
func delay(interval: TimeInterval, closure: @escaping () -> Void) {
DispatchQueue.main.asyncAfter(deadline: .now() + interval) {
closure()
}
}
您可以像这样使用它:
delay(interval: 1) {
print("Hi!")
}
- 3 回答
- 0 关注
- 1765 浏览
添加回答
举报
0/150
提交
取消