gpt4 book ai didi

swift - NSTimer 失效不能正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 07:01:10 27 4
gpt4 key购买 nike

我在我的项目中使用 NSTimer:

var clickTimer: Timer?

override func mouseDown(with event: NSEvent) {
clickTimer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(close(timer:)), userInfo: nil, repeats: false)
}

然后我在

中使它无效
override func mouseUp(with event: NSEvent) {
if let timer = self.clickTimer {
timer.invalidate()
}
}

mouseUp 中的代码正在运行,但计时器的 close 方法仍在 2 秒后运行。为什么失效不起作用?

最佳答案

我现在明白了,你不想重新声明你的 clickTimer 所以你想做的是

if (self.clickTimer == nil) { 
self.clickTimer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(close(timer:)), userInfo: nil, repeats: false)
}


只是想一想,您多次重新初始化 clicktimer,前一个已成功失效但您不小心重新声明了一个新计时器..嗯..

为了安全起见,我还建议您在 timer.invalidate() 之后添加 self.clickTimer = nil

关于swift - NSTimer 失效不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51190370/

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