秒表iOS应用程序w /并发进程错误

时间:2015-12-18 01:24:51

标签: ios swift

这是我的第一篇文章,所以我希望这是一个有效的问题。我在论坛上搜索了一个没有运气的答案。以下是我的秒表应用程序代码。我遇到的问题是,当多次点击播放按钮时,它一次打勾多秒。我如何安全地阻止这种情况发生?

ViewController

import UIKit

class ViewController: UIViewController {
    // MARK: Properties

    @IBOutlet weak var timerLabel: UILabel!

    var timer = NSTimer()
    var time = 0

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    // MARK: Functions
    func increaseTimer() {
        time++
        let formattedTime = String(format:"%02d:%02d", (time/60), time%60)
        timerLabel.text = "\(formattedTime)"
    }

    // MARK: Actions
    @IBAction func btnPlay(sender: AnyObject) {
        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self,
            selector: Selector("increaseTimer"), userInfo: nil, repeats: true)
    }

    @IBAction func btnStop(sender: AnyObject) {
        timer.invalidate()
    }

    @IBAction func btnReset(sender: AnyObject) {
        timer.invalidate()
        time = 0
        timerLabel.text = "00:00"
    }

}

编辑:SOVED http://imgur.com/mqw1Xnp

1 个答案:

答案 0 :(得分:1)

将按钮设为开始/停止按钮。使用布尔实例变量来跟踪计时器是否正在运行。如果是,请停止它。如果不是,请启动它。

或者,将启动计时器的代码设置为button.disabled = true