Я делаю приложение и использую NSTimer, чтобы сделать таймер в моем приложении. Но мне нужно, чтобы NSTimer запускался при запуске сцены. У меня две сцены в моем приложении - рабочий стол, а приложение - Я вот мой код viewcontroller.swift (вторая сцена первая сцена в пустом) И кстати, это мой 3-х день, используя быстрый, и я в средней школе;).Swift Run NSTimer автоматически
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.
}
*/
}
Я исправил ошибку, используя timer.invalidate(), когда счетчик var == 0 –
timer.invalidate удаляет таймер, если он уже существует. Я думал, что вы хотите запустить свой таймер, когда сцена загружается? – Mochi
Хорошо, что я позволю пользователю сначала ответить на вопрос, затем начнется таймер. (Это приложение для 7-12-летних). Но это не имеет значения, потому что я 12 XD –