강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

smsmzun님의 프로필 이미지
smsmzun

작성한 질문수

UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>

protocol

extension에서 init 가능여부

작성

·

190

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

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

안녕하세요

 

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

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

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

 

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

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

 

smsmzun님의 프로필 이미지
smsmzun

작성한 질문수

질문하기