Initializer 확장

2019-10-23
Swift

안녕하세요. 도미닉입니다.

오늘은 Initializer를 확장하는 방법을 알아보겠습니다.

구조체인 경우 선언한 프로퍼티에 따라 자동으로 Initializer 가 생성됩니다.

Initializer에 대해서 궁금하시면 아래 링크 참고 부탁드립니다.

http://kiljh.me/2019/06/09/Initializer/

자동으로 생성된 Initializer 는 별도로 init 메소드 선언 시 사용할 수 없게 됩니다.

하지만 extension 에 init 메소드를 선언하면 자동으로 생성된 Initializer 도 사용할 수 있습니다.

그 예를 보여드리겠습니다.

struct1 객체를 생성할 때는 extension 으로 직접 만든 init 메소드를 사용하였습니다.

struct2 객체를 생성할 때는 기본으로 생성된 memberwise Initializer 를 사용하였습니다.

정리

extension 을 활용해 자동 생성된 initializer 와 직접 만든 init 메소드를 함께 활용할 수 있는 방법을 알아봤습니다.

간단하지만 이렇게 동작한다는게 신기했습니다.

도움이 됬으면 좋겠습니다.

읽어주셔서 감사합니다.