initializer

    [Swift] Initializer 심화 (2)

    [Swift] Initializer 심화 (2)

    지난 글에서는 지정 이니셜라이저와 편의 이니셜라이저, 그리고 초기화 단계에 대해 살펴보았다. 여기서는 이니셜라이저의 상속에 관해 다루려고 한다. 그럼 시작 이니셜라이저의 상속 및 재정의 기본적으로 스위프트의 이니셜라이저는 부모 클래스의 이니셜라이저를 상속받지 않는다. > 부모 클래스로부터 물려받은 이니셜라이저는 자식 클래스에 최적화되어 있지 않아서, 부모 클래스의 이니셜 라이저를 사용했을 때 자식 클래스의 새로운 인스턴스가 완전하고 정확하게 초기화되지 않는 상황을 방지하고자 함 > but, 안전하고 적절하다고 판단되는 특정한 상황에서는 예외 케이스도 존재함 그건 밑에서 다룰 예정 부모 클래스와 동일한 지정 이니셜라이저를 자식 클래스에서 구현해주려면 재정의하면 됨 방법은 간단하다. init 앞에 overr..

    [Swift] Initializer 심화 (1)

    [Swift] Initializer 심화 (1)

    convenience init.. required init 등 제대로 알고 쓰자 싶어서 쓰는 글 클래스에서는 지정 이니셜라이저와 편의 이니셜라이저로 두 종류의 이니셜라이저가 존재한다. 그리고 상속이라는 클래스의 특성 때문에 다양한 패턴의 이니셜라이저가 생길 수 있다. 기본적인 이니셜라이저보다는 조금 심화된 내용인 클래스 이니셜라이저에 대해 살펴보자 지정 이니셜라이저(Designated Initializer) 클래스의 주요 이니셜라이저 필요에 따라 부모 클래스의 이니셜라이저를 호출할 수 있으며, 이니셜라이저가 정의된 클래스의 모든 프로퍼티를 초기화해야 하는 임무를 갖고 있음 한 개 이상 정의해야 함 조상 클래스에서 지정 이니셜라이저가 자손 클래스의 지정 이니셜라이저 역할을 충분히 할 수 있다면, 자손 클래..