gpt4 book ai didi

ios - 使 NSTimer 失效

转载 作者:可可西里 更新时间:2023-11-01 00:51:04 27 4
gpt4 key购买 nike

我的应用程序中有 4 个 NSTimers 对象,它们每隔几秒就会向一个 rest URL 发出请求。

点击一个特定的按钮我想停止计时器,这样它就停止轮询,点击另一个按钮我想恢复轮询。

我已经为所有计时器尝试了 invalidate,但没有用。

注意:所有计时器都在不同的类中,我正试图使另一个类中的计时器无效任何帮助将不胜感激,谢谢。

class NotificationViewController:UIViewController {
var timer:NSTimer?
getEvents(){
if((timer == nil)) {
timer = NSTimer.scheduledTimerWithTimeInterval(20.0, target: self, selector: Selector("getEvents"), userInfo: nil, repeats: true)
}
}
}

在另一个类中,我通过单击按钮来执行此操作

class Menu:UIViewController {

@IBAction func buttonTapped(sender: UIButton) {
self.notify.timer?.invalidate()
self.notify.timer = nil
}
}

最佳答案

您似乎正在丢失对计时器的原始引用。 一个可能 evil解决方案,是在整个应用程序中保留引用。您可以使用 struct 来做到这一点:

struct Timers {
static var firstTimer = NSTimer()
static var secondTimer = NSTimer()
static var thirdTimer = NSTimer()
static var fourthTimer = NSTimer()
}

这样你就可以在程序的任何地方访问定时器:

Timers.firstTimer.invalidate()

关于ios - 使 NSTimer 失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38822930/

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