为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2019-10-14 14:01:28
在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)也可使用。


查看完整回答
反对 回复 2019-10-14
?
阿晨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!")

}


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 1716 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信