我无法更新 Swift,因为我上次尝试时,它根本不起作用(请参阅应用商店中大量的一星评论),所以我找到的其他解决方案,对于 Swift 3.0,不要为我工作。
我用来延迟函数的代码是:
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 1 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
//random function
}
我想要的是延迟小于 1。将“1”更改为“0.3”是行不通的,因为
Binary operator * cannot be applied to operands of type Int64 and Double.
有人知道使延迟小于 1 的技巧吗?
最佳答案
从 delta
开始,编译器说您不能将 *
与两个不同的操作数类型 Int64
和 Double
一起使用dispatch_time
的参数是 Int64
类型,你可以这样写。
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), Int64(Double(NSEC_PER_SEC) * 0.5))
dispatch_after(time, dispatch_get_main_queue()) {
//random function
}
关于ios - 延迟不到一秒,Swift 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321448/