Swift NSTimer()-timer.invalidate不使用简单的秒表?

Swift NSTimer()-timer.invalidate不使用简单的秒表?,swift,Swift,我有点不知所措,程序在运行,但是timer.invalidate不起作用?欢迎任何提示 我过去曾使用过这个程序,并且一直在使用它,计时器.invalidate工作得非常完美。我不相信这与我将它放入函数中的事实有关,因为在我输入timer.invalidate而不是stop时,它不起作用 每当我在iOS模拟器上单击“取消”按钮时,它只会将其重置为0,但会继续计数 提前谢谢 import UIKit class ViewController: UIViewController { var time

我有点不知所措,程序在运行,但是timer.invalidate不起作用?欢迎任何提示

我过去曾使用过这个程序,并且一直在使用它,计时器.invalidate工作得非常完美。我不相信这与我将它放入函数中的事实有关,因为在我输入timer.invalidate而不是stop时,它不起作用

每当我在iOS模拟器上单击“取消”按钮时,它只会将其重置为0,但会继续计数

提前谢谢

import UIKit

class ViewController: UIViewController {
var timer = NSTimer()
var count = 0
@IBOutlet weak var timeDisplay: UILabel!
@IBAction func playButton(sender: AnyObject) {
    //play button
    var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}

@IBAction func resetTimer(sender: AnyObject) {
    //cancel button
    stop()
    count = 0
    timeDisplay.text = "0"
}


@IBAction func pauseButton(sender: AnyObject) {
    stop()
}

func result() {
    count++
    timeDisplay.text = String(count)
}

func stop () {
    timer.invalidate()
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
 }
}
在playButton中,您正在定义另一个计时器,该计时器不能从此函数外部无效-因此,通过调用timer.invalidate,您可以仅使var timer=NSTimer无效,该计时器中没有任何设置的计时器

因此,替换

var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)

在playButton中,您正在定义另一个计时器,该计时器不能从此函数外部无效-因此,通过调用timer.invalidate,您可以仅使var timer=NSTimer无效,该计时器中没有任何设置的计时器

因此,替换

var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)


非常感谢你,我不知道我怎么会错过这个!我错过的唯一借口是这里已经很晚了!哈哈,我很感激@尼凯利只是在等待倒计时!干杯@尼凯尔太感谢你了,我不知道我怎么会错过这个!我错过的唯一借口是这里已经很晚了!哈哈,我很感激@尼凯利只是在等待倒计时!干杯@尼凯尔