안녕하세요😀
몇 일 사이에 컨디션이 안 좋아서 포스팅을 못했는데 너무 안하는 것보다 최근에 다시 읽고있는 야곰님의 Swift 스위프트 프로그래밍
책을 공부하면서 놓쳤던 부분에 대해서 정리하면서 기억해보려고 합니다!!
그래서 처음으로 가져온 파트는 프로퍼티 감시자입니다.
프로퍼티(Property)
는 클래스, 구조체, 열거형에서 사용되는 값들을 말합니다.
근데 이 프로퍼티들의 값이 변할 때마다 호출이 돼서 행하고 싶은 작업이 있을 때 프로퍼티 감시자(Property Observer)
를 사용해서 작업을 실행 할 수 있습니다.
프로퍼티 감시자는 일반적으로 변수나 상수를 저장하는 저장 프로퍼티에 사용이 가능하며 상속받은 연산 프로퍼티에도 사용이 가능합니다.
프로퍼티 감시자에는 willSet
과 didSet
두 메서드가 존재하는데 어떤 일을 하는지는 이름과 같이
여기서 매개변수가 존재한다고 했는데 만약, 매개변수의 이름을 정해주지 않으면 willSet
메서드의 매개변수의 값은 newValue
, didSet
메서드의 매개변수의 값은 oldValue
라는 이름을 갖는다.
간단하게 사용한 것을 보면 다음과 같다.
class Person{
var weight: Int = 80 {
willSet {
print("이걸 다 먹으면 \(weight)kg에서 \(newValue)kg가 될 것 같아..")
}
didSet {
print("결국 다 먹어서 \(oldvalue)kg에서 \(weight)kg로 변했어..")
}
let chang: Person = Person()
// 출력 -> 이걸 다 먹으면 80kg에서 85kg가 될 것 같아..
chang.weight = 85
// 출력 -> 결국 다 먹어서 80kg에서 85kg로 변했어..