2017-09-23 56 views
0

在早期版本的Swift中,此代码完美工作。如何在Swift 4中编写GCD asyncAfter?

DispatchQueue.main.asyncAfter(deadline: .now() + delay) { timer in 
    self.setOriginalState() 
    self.shakeAnimation() 
} 

但是在斯威夫特4出现以下错误:

暧昧参考成员 'asyncAfter(截止日期:服务质量:标志:执行:)'

一个如何创建在Swift 4中运行一系列代码之前延迟?

+1

只是删除“定时器”,然后工作正常。 –

+1

“在早期版本的Swift中,这个代码完美地工作”然而,它总是错误的。发生的一切就是编译器不再那么宽容。 – matt

回答

3

尝试在操场上它没有给出任何问题,这只是“缺少”是“定时器”的参考。

DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
    print("Dispatching after") 
} 

DispatchQueue.main.asyncAfter(deadline: .now() + 3, qos: .userInteractive, flags: []) { 
    print("Dispatching after") 
} 

他们都似乎工作,你确定问题不在别的地方?

+0

谢谢,安德烈先生...工作完美。 –