swift延时执⾏
1.延时执⾏
//延时1秒执⾏
nets
let time: TimeInterval = 1.0
DispatchQueue.main.asyncAfter(deadline: w() + time) {
//code
print("1 秒后输出")
}
2.对延时执⾏喵神进⾏了较好的封装,这⾥我也贴出来了,供⼤家学习
matterhornimport Foundation
typealias Task = (_ cancel : Bool) -> Void
func delay(_ time: TimeInterval, task: @escaping ()->()) -> Task? {
func dispatch_later(block: @escaping ()->()) {
let t = w() + timemotioncontrol
DispatchQueue.main.asyncAfter(deadline: t, execute: block)
}爱你在心口难开英文版
var closure: (()->Void)? = task
var result: Task?
let delayedClosure: Task = {双学位英文
马尔克斯的名言cancel in
if let internalClosure = closure {
if (cancel == fal) {
DispatchQueue.main.async(execute: internalClosure)
}
}
behavesclosure = nil
result = nil
customerrvice}
result = delayedClosure
dispatch_later {
if let delayedClosure = result {
delayedClosure(fal)
}
}
return result
}
func cancel(_ task: Task?) {
task?(true)
日语能力考
}
/*****使⽤*****/
//调⽤
delay(2) { print("2 秒后输出") }
//取消
let task = delay(5) { print("拨打 110") }
/
/ 仔细想⼀想..
// 还是取消为妙..
cancel(task)
3.OC版本
//延时
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //do something
});
谦冲