View의 라이프사이클 (일부)
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var progressBar: UIProgressView!
@IBOutlet weak var trueButton: UIButton!
@IBOutlet weak var falseButton: UIButton!
let quiz = [
"Four + Two is euqal to Six.",
"Five = Three is greater than One",
"Three + Eight is less than Ten"
]
var questionNumber = 0
override func viewDidLoad() {
super.viewDidLoad()
updateUI()
}
@IBAction func answerButtonPressed(_ sender: UIButton) {
questionNumber += 1
updateUI() //버튼이 누린다면, 질문이 바껴야함. 그러므로 다시 호출!
}
func updateUI() {
questionLabel.text = quiz[questionNumber]
}
}
이번 챕터를 진행하면서, if/else 그리고 dictionary 등, 여러가지 문법들을 활용할 수 있었다.
// dictionary
struct QuizBrain {
let quiz = [
Question(q: "Which is the largest organ in the human body?",
a: ["Heart", "Skin", "Large Intestine"],
correctAnswer: "Skin"),
Question(q: "Five dollars is worth how many nickels?",
a: ["25", "50", "100"],
correctAnswer: "100")
]
// 이러한 mutating을 사용한 함수
mutating func checkAnswer(_ userAnswer: String) -> Bool {
if userAnswer == quiz[questionNumber].correctAnswer {
score += 1
return true
} else {
return false
}
// 그리고 반환 값을 필요로 하는 함수까지
func getQuestionText() -> String {
return quiz[questionNumber].text
}
func getAnswerChoices() -> [String] {
return quiz[questionNumber].answer //a는 안됨...
}
func getProgress() -> Float {
let progress = Float(questionNumber) / Float(quiz.count)
return progress
}
예전에 과제를 할 땐, 시간이 부족해 자세하게 무슨 역할을 하는지 몰랐지만, 이번 챕터를 공부하면서
그래도 예전보단 이해력이 많이 상승했다.
결과:
끝!