NOW-ON / iOS-Interview-Preparation

iOS 면접 준비
3 stars 0 forks source link

Intinalizer & Convenience init #5

Closed Glsme closed 1 year ago

Glsme commented 1 year ago

2022.12.26 (월) 모임 전까지 작성해주세요.

Yun-YeoJin commented 1 year ago
heydoy commented 1 year ago

Initializers

생성자는 특정 타입의 새 인스턴스를 생성할 때 호출됨. 가장 기본적인 형태로는 파라미터가 없는 인스턴스 메서드와 같음.

init() {
 // 여기서 초기화를 실행 
}

Designated and Convenience initializers

init(파라미터) {
   // 구문
}
convenience init(파라미터) {
   // 구문
} 

클래스타입의 이니셜라이저 위임 규칙

  1. 지정 이니셜라이저는 반드시 바로 위 수퍼 클래스의 지정 이니셜라이저를 호출해야함.
  2. Convenience 이니셜라이저는 같은 클래스의 다른 이니셜라이저를 호출해야함.
  3. Convenience 이니셜라이저는 반드시 지정 이니셜라이저를 온전히 호출해야함.
image
wodyddml2 commented 1 year ago

initializer은 특정 타입의 새로운 인스턴스를 만들기 위해 호출되며 기본 형태는 인자 없는 인스턴스 메서드와 유사한 형식으로 init 키워드를 사용한다.

Convenience init은 init을 보조하는 역할 같은 클래스에서 반드시 Designated init을 호출해야하한다. (init은 모든 멤버들을 초기화가 보장되므로)

Glsme commented 1 year ago

initializer는 모든 저장 속성 초기화를 통한 인스턴스를 생성하는 것이다.

convenience init은 지정 생성자보다 더 적은 개수의 파라미터로 보다 편리하게 생성하기 위한 생성자이다.

LeeJoobang commented 1 year ago

initializer : swift의 초기화 이니셜라이즈이다. 모든 프로퍼티가 초기화 될 수 있도록 한다. convenience init : 보조 이니셜 라이즈다. 위의 initializer를 돕는 보조적인 열할을 한다고 볼 수 있다. : 구체적으로 이미 초기화된 프로퍼티의 값의 전부가 아닌 일부를 기본값으로 지정해 놓는 것이다.