gpt4 book ai didi

swift - 取消 Swift 中的定时事件?

转载 作者:IT王子 更新时间:2023-10-29 04:59:36 25 4
gpt4 key购买 nike

我想在事件发生后的 10 秒内运行一段代码,但我希望能够取消它,这样如果在这 10 秒之前发生了什么,代码将不会在 10 秒后运行。

我一直在使用这个,但它是不可取消的:

static func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure
)
}

我怎样才能做到这一点?

最佳答案

Swift 3 有 DispatchWorkItem:

let task = DispatchWorkItem { print("do something") }

// execute task in 2 seconds
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2, execute: task)

// optional: cancel task
task.cancel()

关于swift - 取消 Swift 中的定时事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28359768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com