Swift 运行 一个 NSTimer 自动

Swift Run An NSTimer Automatically

我正在制作一个应用程序并使用 NSTimer 在我的 app.But 中制作计时器 我需要 NSTimer 运行 当场景 start.I 在我的应用程序中有两个场景主屏幕和它自己的应用程序是我的代码 viewcontroller.swift(第二个场景第一个场景是空的)顺便说一句,这是我使用 swift 的第 3 天,我在中学;)。

 import UIKit
 var Number = 2
 var Answer = Number * 2
 var score = 0
var scorelabel = "Score: "
var Timer = NSTimer()
var Counter = 10

class SecondViewController: UIViewController {


@IBOutlet weak var RightAndWrongLabel: UILabel!

@IBOutlet weak var TimerLabel: UILabel!
@IBOutlet weak var RightAndWrong: UIImageView!
@IBOutlet weak var ScoreIabel: UILabel!
@IBOutlet weak var UserInputAnswer: UITextField!
@IBOutlet weak var Question: UILabel!
@IBOutlet weak var TimerOut: UIImageView!

var seconds = 0
var timeison = true







@IBAction func ConfirmAnswer(sender: AnyObject) {
    let UserAnswer = Int(UserInputAnswer.text!)
    if UserAnswer == Answer {
        print("Your right")
        Number += 2
        score += 1
        ScoreIabel.text = "Score: \(score)"
        Question.text = "\(Number) x 2"
        UserInputAnswer.text = ""
        Answer = Number * 2
        RightAndWrong.image = UIImage(named: "Label")
        RightAndWrongLabel.hidden = false
        RightAndWrongLabel.text = "Right!"
        RightAndWrongLabel.textColor  = UIColor(red: 0, green: 225, blue: 0, alpha: 1)

    } else {
        UserInputAnswer.text  = ""
        RightAndWrong.image = UIImage(named: "Label")
        RightAndWrongLabel.hidden = false
        RightAndWrongLabel.text = "Wrong!"
        RightAndWrongLabel.textColor = UIColor(red: 225, green: 0, blue: 0, alpha: 1)



    }



}

func DisplayTimer() {
    Timer = NSTimer.scheduledTimerWithTimeInterval(1, target:self, selector: Selector("updateCounter"), userInfo: nil, repeats: true)
}


func updateTimer(){
    TimerLabel.text = String(Counter--)
}
override func viewDidLoad() {
    super.viewDidLoad()
    UserInputAnswer.keyboardType = UIKeyboardType.NumberPad
    RightAndWrongLabel.hidden = true

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    3
    // Dispose of any resources that can be recreated.
}


/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
}
*/

}

如果您想在场景加载时启动计时器,请调用 DisplayTimer() override func viewDidLoad() 加载视图时

此外,如果您想每秒更新一次标签,NSTimer 中的选择器将调用 updateCounter 而不是 updateTimer

Swift 2.x :

func DisplayTimer() {
    Timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target:self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
}

func updateTimer() {
    if Counter != 0 {  TimerLabel.text = "\(Counter -= 1)" 
    } else { 
        Timer.invalidate() 
        // call a game over method here... 
    }
 }

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

     // start the timer when this controller shows up
     DisplayTimer()
     TimerLabel.text = "\(Counter)" 

    ... 
   }