Apple-CS-interview / iOS-CS-interview

7 stars 1 forks source link

Convenience init에 대해 설명하시오. #4

Open Do-hyun-Kim opened 1 year ago

Do-hyun-Kim commented 1 year ago

🗣️ Convenience init에 대해 설명하시오.

✏️ Initialization Rule

✔️ Initialization Safety check

🧐 two-phase initialization

image

📝 참고 사이트

Hminchae commented 1 year ago

Initializer란

Convenience init

Convenience init 주의

Swift의 Initializer 규칙

convenience init은 같은 클래스에서 다른 이니셜라이저를 호출해야한다.

Designated init의 보조이기 때문에 위에서 선언한 init을 활용하여 선언해야 한다.

📝 참조

vichye-1 commented 1 year ago

클래스에서의 Initialization

<Initializer의 종류>

구조체에서의 Initialization

📝 참고

ronick-grammer commented 1 year ago

Designated Initializer (지정 생성자)

Convenience Initializer (편의 생성자)

Initializer Delegation

클래스가 상속관계에 있을때 or 클래스가 Designated InitializerConvenience Initializer 둘다 가지고 있을 때 생성자가 또다른 생성자를 호출하는 방식이다. Initializer Delegation 호출을 위한 룰은 아래와 같다.

Two-Phase Initialization: 클래스 생성 과정

Swift에서는 클래스를 생성하는 2단계 과정이 존재한다.

클래스 생성자 Safety-Check

Swift는 Two-Phase Initialization 을 에러없이 안전하게 수행하기 위한 안전 방침을 따른다.

📝 참고 사이트