빙수왕의 개발일지

init에서 변수 값을 넣어줘도 didSet은 실행되지 않는다. 본문

개발/iOS

init에서 변수 값을 넣어줘도 didSet은 실행되지 않는다.

빙수킹 2020. 11. 29. 05:14

제곧내

 

아래같은 코드가 있다고 가정하자. 

required init에서 currentPage = 0을 세팅해줬다. 

그럼 변수 currentPage의 didSet이 호출될까?

안된다.

class TipViewModel: ViewModel {
    var currentPage: Int = 0 { // 현재 페이지
        didSet {
            // 내용
        }
    }
    
    required init() {
        currentPage = 0
        commonInit()
    }
    
    func commonInit() {
        
    }

 

그럼 currentPage = 0을 commonInit()으로 옮기면 호출될까?

된다요. 

그래서 값 초기화와 동시에 didSet을 호출해주고 싶다면 commonInit()을 만들어주고 거기서 실행시켜야 할 듯 하다.