大器晩成

구조체/클래스의 생성자/소멸자 비교 본문

iOS/Swift 문법

구조체/클래스의 생성자/소멸자 비교

zerobugpark 2024. 12. 6. 23:00

이니셜라이저(Initializers)

구분 구조체(Struct) 클래스(Class)
1) 지정 생성자
(Designated)
                                     init( ) { }
•모든 저장속성에 기본값(or옵셔널) 설정으로 생성자 구현 안할시, 기본 생성자 기본제공,
만약 생성자를 구현 안할 시에는 Memberwise생성자를 기본제공

                              init(파라미터) { }
                               init( ) { }
모든 저장속성에 기본값(or옵셔널) 설정으로 생성자 구현 안할시, 기본 생성자 기본제공

                              init(파라미터) { }
2) 편의 생성자
(Convenience)
X convenience init(파라미터) { }
(상속과 관련)
3) 필수 생성자
(Required)
X required init(파라미터) { }
(상속과 관련)
4) 실패가능 생성자
(Failable)
init?(파라미터) { }
init!(파라미터) { }
init?(파라미터) { }
init!(파라미터) { }
5) 소멸자
(Deinitializers) 
X deinit { }
  • 편의생성자는 반드시 지정생성자를 호출해야 합니다.
  • 필수 생성자는 하위 클래스에서 반드시 구현해야 합니다.(자동상속이 되는 경우가 있음)
  • 소멸자는 메모리에서 제거될 때 자동으로 호출되는 메서드입니다.
728x90