Swift: 跟踪用户的分数
Swift: Tracking User's score
我正在尝试创建一个由两个按钮(假按钮和真按钮)组成的测验应用程序。我的问题是,当我在应用程序中回答更多问题时,我希望 textLabel 跟踪我的分数。然后当我再次回到第一个问题时,它应该会重置。到目前为止,这是我的代码。我期待着您的回答。
class ViewController: UIViewController {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var progressBar: UIProgressView!
@IBOutlet weak var trueButton: UIButton!
@IBOutlet weak var falseButton: UIButton!
@IBOutlet weak var scoreLabel: UILabel!
var quizBrain = QuizBrain()
override func viewDidLoad() {
super.viewDidLoad()
updateUI()
progressBar.progress = 0.0
}
@IBAction func answerButtonPressed(_ sender: UIButton) {
let userAnswer = sender.currentTitle
let userGotItRight = quizBrain.checkAnswer(userAnswer!)
if userGotItRight {
sender.shortChangeTo(.green)
} else {
sender.shortChangeTo(.red)
}
quizBrain.nextQuestion()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.updateUI()
}
}
func updateUI() {
questionLabel.text = quizBrain.getQuestionText()
trueButton.backgroundColor = UIColor.clear
falseButton.backgroundColor = UIColor.clear
progressBar.progress = 33
scoreLabel.text = "Score: \(quizBrain.getScore)"
}
}
您还没有任何代码?您可以创建一个像 user
这样的结构
struct user {
var score: Int = 0
mutating func answerRight (){
self.score =+ 1 }
mutating func reset (){
self.score = 0 }
}
但我在您的代码“分数:(quizBrain.getScore)”中看到了这一点
这表示 quizBrain 应该知道分数。但是你永远不会给它添加一个值所以检查你的 quizBrain 并创建一个可以跟踪分数的函数或对象,然后在这里调用它“if userGotItRight {}”
我正在尝试创建一个由两个按钮(假按钮和真按钮)组成的测验应用程序。我的问题是,当我在应用程序中回答更多问题时,我希望 textLabel 跟踪我的分数。然后当我再次回到第一个问题时,它应该会重置。到目前为止,这是我的代码。我期待着您的回答。
class ViewController: UIViewController {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var progressBar: UIProgressView!
@IBOutlet weak var trueButton: UIButton!
@IBOutlet weak var falseButton: UIButton!
@IBOutlet weak var scoreLabel: UILabel!
var quizBrain = QuizBrain()
override func viewDidLoad() {
super.viewDidLoad()
updateUI()
progressBar.progress = 0.0
}
@IBAction func answerButtonPressed(_ sender: UIButton) {
let userAnswer = sender.currentTitle
let userGotItRight = quizBrain.checkAnswer(userAnswer!)
if userGotItRight {
sender.shortChangeTo(.green)
} else {
sender.shortChangeTo(.red)
}
quizBrain.nextQuestion()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.updateUI()
}
}
func updateUI() {
questionLabel.text = quizBrain.getQuestionText()
trueButton.backgroundColor = UIColor.clear
falseButton.backgroundColor = UIColor.clear
progressBar.progress = 33
scoreLabel.text = "Score: \(quizBrain.getScore)"
}
}
您还没有任何代码?您可以创建一个像 user
这样的结构struct user {
var score: Int = 0
mutating func answerRight (){
self.score =+ 1 }
mutating func reset (){
self.score = 0 }
}
但我在您的代码“分数:(quizBrain.getScore)”中看到了这一点 这表示 quizBrain 应该知道分数。但是你永远不会给它添加一个值所以检查你的 quizBrain 并创建一个可以跟踪分数的函数或对象,然后在这里调用它“if userGotItRight {}”