반응형
초기화
- 인스턴스를 생성해서 메모리 공간을 할당받는 것.
- 모든 저장 속성들은 초기화가 되어야 인스턴스 사용이 가능 (초기값이 지정되어 있어야 함)
클래스 | 구조체 | |
직접 초기값 넣기 | O | O |
생성자 사용 | O | O |
멤버와이즈 이니셜라이저 | X | O |
Convenience init
추가적인 작업을 할 수 있도록 해주는 보조 이니셜라이저
- 자기 단계에 있는 지정 생성자 또는 자기 단계에 있는 다른 편의 생성자 호출 가능
- 지정 생성자는 상위 지정 생성자를 호출해야함
- 클래스에만 해당하는 기능 (상속과 관련)
- 지정생성자보다 적은 갯수의 파라미터로 보다 편리하게 생성하기 위한 서브(Sub)개념의 생성자
- 편의 생성자는 지정 생성자에 의존 및 호출(지정생성자가 저장 속성 초기화)
- 초기화 과정을 간편하게 제공하기 위함
- 실질적으로 가능한 지정생성자의 갯수를 줄이고, 편의생성자에서 지정생성자 호출하도록 하는 것이 바람직
- 상속했을때, 편의생성자의 경우 서브클래스에서 재정의를 못함(하위에서 호출불가가 원칙)
- 편의생성자는 다른 편의생성자를 호출하거나, 지정생성자를 호출해야함 (궁극적으로는 지정생성자를 호출)
예시)
사용하는 이유
- 클래스 상속 가능 ⇒ 여러 번 상속을 거친 클래스는 많은 속성 존재 가능 ⇒ 개발자의 실수 확률 높임
- 편의생성자 사용 ⇒ 실수를 줄일 수 있음
반응형
'iOS > Swift' 카테고리의 다른 글
[iOS/Swift] Hashable, HashValue, Equatable 이란 (0) | 2024.03.31 |
---|---|
[iOS] 타입 주석(Type Annotation)과 타입 추론(Type Inference) (0) | 2022.12.27 |
[iOS/Swift] CoreData 공부하기 (0) | 2022.08.23 |
[iOS/swift] navigation controller에서 root view 지정 (스토리보드 구성) (0) | 2022.08.20 |
Reactive X 공부 (0) | 2022.07.19 |