Udemy Quizzler App

박중권·2024년 5월 31일
0

Udemy

목록 보기
6/8

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
    }

예전에 과제를 할 땐, 시간이 부족해 자세하게 무슨 역할을 하는지 몰랐지만, 이번 챕터를 공부하면서
그래도 예전보단 이해력이 많이 상승했다.

결과:

끝!

profile
Hello World!

0개의 댓글