Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在swift中停止函数_Ios_Swift_Function_Timer_Nstimer - Fatal编程技术网

Ios 如何在swift中停止函数

Ios 如何在swift中停止函数,ios,swift,function,timer,nstimer,Ios,Swift,Function,Timer,Nstimer,所以我在swift上做了一个小定时器应用程序,我只有两个按钮。一个用于启动计时器,另一个用于停止计时器并将值重置为0。我已经解决了所有问题,我有一个叫做timer的函数,它为变量“Time”每秒增加一个值。问题是,当我单击停止按钮时,它会将值重置为0,但它会再次计数 问题是如何停止该函数的运行 这里有一些代码 var time = 0 func result() { time++ print(time) } @IBAction func clickToStart(sender

所以我在swift上做了一个小定时器应用程序,我只有两个按钮。一个用于启动计时器,另一个用于停止计时器并将值重置为0。我已经解决了所有问题,我有一个叫做timer的函数,它为变量“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()
将计时器设为成员变量并调用其上的
timer.invalidate()
将计时器设为成员变量并调用其上的
timer.invalidate()
将计时器设为成员变量并调用
timer.invalidate()
在其上

将变量计时器更改为实例变量。使其变弱,因为系统拥有它,当您停止计时器时,它将自动解除分配


在clickToStop方法中,调用
timer.invalidate()

将变量计时器更改为实例变量。使其变弱,因为系统拥有它,当您停止计时器时,它将自动解除分配


在clickToStop方法中,调用
timer.invalidate()

将变量计时器更改为实例变量。使其变弱,因为系统拥有它,当您停止计时器时,它将自动解除分配


在clickToStop方法中,调用
timer.invalidate()

将变量计时器更改为实例变量。使其变弱,因为系统拥有它,当您停止计时器时,它将自动解除分配


在clickToStop方法中,调用
timer.invalidate()

正如其他人指出的那样,使用timer.invalidate()函数,但如果您正在执行与时间无关的其他操作或希望其他操作停止,也可以使用标志变量

基本上,您可以创建一个bool变量,当用户停止操作时,将bool设置为true。在另一个函数中,如果bool为true,则不要执行操作,除非它为false。这适用于静音按钮


就像在我的游戏中,当游戏结束时,我有一个bool变量touchesInvalid,它位于touchesbeent函数的最顶端。如果touchesInvalid bool为true,则用户不能再执行涉及touch的任何操作。

正如其他人使用timer.invalidate()函数指出的那样,但如果您正在执行与时间无关的其他操作或希望停止其他操作,也可以使用标志变量

基本上,您可以创建一个bool变量,当用户停止操作时,将bool设置为true。在另一个函数中,如果bool为true,则不要执行操作,除非它为false。这适用于静音按钮


就像在我的游戏中,当游戏结束时,我有一个bool变量touchesInvalid,它位于touchesbeent函数的最顶端。如果touchesInvalid bool为true,则用户不能再执行涉及touch的任何操作。

正如其他人使用timer.invalidate()函数指出的那样,但如果您正在执行与时间无关的其他操作或希望停止其他操作,也可以使用标志变量

基本上,您可以创建一个bool变量,当用户停止操作时,将bool设置为true。在另一个函数中,如果bool为true,则不要执行操作,除非它为false。这适用于静音按钮


就像在我的游戏中,当游戏结束时,我有一个bool变量touchesInvalid,它位于touchesbeent函数的最顶端。如果touchesInvalid bool为true,则用户不能再执行涉及touch的任何操作。

正如其他人使用timer.invalidate()函数指出的那样,但如果您正在执行与时间无关的其他操作或希望停止其他操作,也可以使用标志变量

基本上,您可以创建一个bool变量,当用户停止操作时,将bool设置为true。在另一个函数中,如果bool为true,则不要执行操作,除非它为false。这适用于静音按钮

就像在我的游戏中,当游戏结束时,我有一个bool变量touchesInvalid,它位于touchesbeent函数的最顶端。如果touchesInvalid bool为true,则用户不能再执行涉及touch的任何操作