• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

extension에서 init 가능여부

22.04.03 03:13 작성 조회수 106

0

선생님 안녕하세요 extension에서 질문이 있습니다.

1. Guest, Vip 도 Member처럼 Init을 하고싶을 때 extension에 넣으면 안되는건가요? 

 

extension UserInfo {

    init(name: String, age: Int) {

        self.name = name

        self.age = age

    }

    

    func isAdult() -> Bool{

        if age > 19 {

            return true

        }

        return false

    }

 

}

=====================================

 

2. extension에 init을 못넣는다면 세가지 class모두 init을 쓰고싶을 땐 어떻게 하는게 좋을까요?

 

3. extension에 넣을 수 있는 것과 없는 것이 대략적으로 궁금합니다.

 

답변 1

답변을 작성해보세요.

1

안녕하세요

 

기본 init은 해당 class를 초기화 과정의 필수요소 입니다.

그러니 기본 init은 extension같은 class이외의 공간에서 설정할 수 없습니다.

그러므로 각각의 class init은 각각 구현하는게 맞습니다.

 

extension에서 convenience init은 가능합니다.

대신 convenience init은 기본 init이 반드시 있어야 하고 호출되어야 합니다.