[TIL] 카운터 예제 수정!

한철희·2024년 3월 19일
0

TIL

목록 보기
16/57

저번 글에서 작성한 카운터 예제를 다시 작성해봤다.
단순 똑같이 작성한 것은 아니고 강사님이 하던것처럼 함수를 추가해서 작성했다
참고차 전에 작성했던 코드를 첨부한다.

class ViewController: UIViewController {
    var count: Int = 0

    @IBOutlet weak var countLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func decreaseButtonTapped(_ sender: Any) {
        count -= 1
        countLabel.text = String(count)
    }
    
    @IBAction func increaseButtonTapped(_ sender: Any) {
        count += 1
        countLabel.text = String(count)
    }
}

위 코드에서 countLabel의 값을 변경해주는 부분을 수정했다
바뀔때 마다 같은 코드를 중복해서 사용하던 것을
함수로 지정해줘서 코드의 반복을 줄였다.

class ViewController: UIViewController {
    var count: Int = 0

    @IBOutlet weak var countLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        refreshCount()
    }
    
    func refreshCount() {
        countLabel.text = String(count)
    }
    
    @IBAction func decreaseButtonTapped(_ sender: Any) {
        count -= 1
        refreshCount()
    }
    
    @IBAction func increaseButtonTapped(_ sender: Any) {
        count += 1
        refreshCount()
    }
}

이런식으로 변경했다
refreshCount()함수로 count값이 변경될 때 countLabel의 값을 변경해준다

실행해본 결과 작동도 잘 된다.

음 그리고 강사님의 코드를 다시 보니까 새로 작성한 코드와 거의 유사하지만 접근제한자와 self라는 키워드가 있는것이 다르다.
조금 찾아본 결과를 나름대로 생각해봤다
self키워드는 매개변수 이름과 인스턴스 변수의 이름이 같을 경우 구분을 위해 사용하는 것 같다.
그리고 접근제한자의 경우 pirvate을 객체지향적인 측면? 에서
사용해서 외부에서 값을 변경하지 못하도록 하는 것으로 이해했다.

이 정도로 일단 실사용에서 이해를 했는데 좀 더 이론적인 부분은
튜터님께 질문해서 다시 내용을 추가하도록 해야겠다.

profile
초보 개발자 살아남기

0개의 댓글