저번 글에서 작성한 카운터 예제를 다시 작성해봤다.
단순 똑같이 작성한 것은 아니고 강사님이 하던것처럼 함수를 추가해서 작성했다
참고차 전에 작성했던 코드를 첨부한다.
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
을 객체지향적인 측면? 에서
사용해서 외부에서 값을 변경하지 못하도록 하는 것으로 이해했다.
이 정도로 일단 실사용에서 이해를 했는데 좀 더 이론적인 부분은
튜터님께 질문해서 다시 내용을 추가하도록 해야겠다.