-
Swift Property - 3Programming/Swift(iOS) 2021. 4. 1. 23:42728x90
프로퍼티에는 감시자라는게 있습니다.
값이 변경될 때, 특정 행동들을 수행하도록 만들 수 있습니다.
저장 프로퍼티에 한해서만 사용을 할 수 있고, willSet / didSet이 있습니다.
- willSet
값이 변경되지 직전에 호출
속성이 변경될 것이라는 것을 외부에 알릴때 많이 사용-didSet
값 변경 후에 호출 된다.
값의 변경 이후에 추가적으로 수행해야되는 작업이 있을 경우
이와는 별도로 defer block도 있습니다.
함수가 끝나고 난 이후에 무조건 실행되는 block입니다...
struct User { var email:String { didSet { //만약 emil의 주소가 올바른지 체크하고 싶다.. //예를 들어 이메일의 입력이 ". hello@gmail.com "이다.. //공백 제거하는 방법을 email에 값이 변경된 후에 다시 한번 처리하는 것이다. //email = email.lowercased().trimmingCharacters(in:.whitespaces) print("didSet \(oldValue)") } willSet { print("willSet \(newValue)") isChanged = true } } var isChanged:Bool = false init(email:String) { print("init begin") self.email = email //defer: 함수가 종료된 이후에 호출되는 블록을 지정합니다. 함수의 마지막에 수행되어야하는 정리코드를 캠슐화하는 목적으로 사용한다. //swift의 공식 솔루션은 아니다. 하지만 많은 개발자들이 많이 사용하는 방법은 defer이다. defer { print("defer") } print("init end") } }
'Programming > Swift(iOS)' 카테고리의 다른 글
Swift Optional - 2 (0) 2021.04.02 Swift Optional - 1 (0) 2021.04.02 Swift Property - 2 (0) 2021.04.01 Swift Property - 1 (0) 2021.04.01 Swift Enum - 4 (0) 2021.04.01