如何在 swift 中停止函数
How to stop function in swift
所以我在 swift 中做一个小计时器应用程序,我只有 2 个按钮。一个用于启动计时器,一个用于停止计时器并将值重置为 0。我已经弄清楚了所有内容,并且我有一个名为计时器的函数,它每秒为变量 "Time" 增加一个值。问题是,当我单击“停止”按钮时,它会将值重置为 0,但它会再次计数。
问题是如何从 运行 停止该功能。
这是一些代码
var time = 0
func result() {
time++
print(time)
}
@IBAction func clickToStart(sender: AnyObject) {
result()
}
@IBAction func clickToStop(sender: AnyObject) {
time = 0
print(time)
}
override func viewDidLoad() {
super.viewDidLoad()
var timer = NSTimer()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}
让你的计时器成为一个成员变量并在其上调用 timer.invalidate()
将变量计时器更改为实例变量。让它变弱,因为系统拥有它,当你停止计时器时它会自动释放。
在您的 clickToStop 方法中,调用 timer.invalidate()
。
正如其他人指出的那样,使用 timer.invalidate() 函数,但您也可以使用标志变量,以防您正在做与时间无关的其他事情或希望停止其他操作。
基本上,您可以只创建一个 bool 变量,当用户停止操作时,使 bool 为真。在另一个函数中,如果 bool 为真则不执行操作,除非它为假。这适用于静音按钮。
就像在我的游戏中一样,当游戏结束时,我有一个 bool 变量 touchesInvalid,它位于 touchesBegan 函数的最顶部。如果 touchesInvalid bool 为真,则用户不能再执行任何涉及触摸的操作。
所以我在 swift 中做一个小计时器应用程序,我只有 2 个按钮。一个用于启动计时器,一个用于停止计时器并将值重置为 0。我已经弄清楚了所有内容,并且我有一个名为计时器的函数,它每秒为变量 "Time" 增加一个值。问题是,当我单击“停止”按钮时,它会将值重置为 0,但它会再次计数。
问题是如何从 运行 停止该功能。
这是一些代码
var time = 0
func result() {
time++
print(time)
}
@IBAction func clickToStart(sender: AnyObject) {
result()
}
@IBAction func clickToStop(sender: AnyObject) {
time = 0
print(time)
}
override func viewDidLoad() {
super.viewDidLoad()
var timer = NSTimer()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}
让你的计时器成为一个成员变量并在其上调用 timer.invalidate()
将变量计时器更改为实例变量。让它变弱,因为系统拥有它,当你停止计时器时它会自动释放。
在您的 clickToStop 方法中,调用 timer.invalidate()
。
正如其他人指出的那样,使用 timer.invalidate() 函数,但您也可以使用标志变量,以防您正在做与时间无关的其他事情或希望停止其他操作。
基本上,您可以只创建一个 bool 变量,当用户停止操作时,使 bool 为真。在另一个函数中,如果 bool 为真则不执行操作,除非它为假。这适用于静音按钮。
就像在我的游戏中一样,当游戏结束时,我有一个 bool 变量 touchesInvalid,它位于 touchesBegan 函数的最顶部。如果 touchesInvalid bool 为真,则用户不能再执行任何涉及触摸的操作。