인프런 커뮤니티 질문&답변
질문
작성
·
303
0
initializer delegation에서의 3가지 규칙을
1.desiganted 생성자는 반드시 superclass의 designated 생성자를 호출해야한다. ->delegate up
2.convenience 생성자는 반드시 같은 클래스에 있는 convenience 생성자를 호출해야한다. <- delegate across
3.covenience 생서자가 호출되었을때 반드시 동일한 클래스내에 있는 designated 생성자가 호출되어야한다.
라고 학습했는데
영상 9:35초에서 square 클래스에서 Square 클래스에서 첫번째 convenience 생성자는 super class의 designated 생성자를 호출하는데 이건 몇번 규칙인가요..?
또 두번째 생성자는 super class의 convenience 생성자를 호출하는데 이것도 몇번 규칙인가요?
퀴즈
클래스의 모든 저장 프로퍼티를 초기화하고 상위 클래스의 이니셜라이저를 호출하는 주된 이니셜라이저는 무엇일까요?
편의 이니셜라이저 (Convenience Initializer)
지정 이니셜라이저 (Designated Initializer)
필수 이니셜라이저 (Required Initializer)
실패 가능한 이니셜라이저 (Failable Initializer)
답변 1
0
안녕하세요 :)
두 가지 모두 상위 클래스에서 상속된 생성자를 호출하는 것입니다. 따라서 2번, 3번에 규칙에 속합니다.
self. 으로 호출하면 항상 delegate across
super. 으로 호출해야 delegate up 입니다.





