태그: MVVM
- This topic has 2개 답변, 3명 참여, and was last updated 4 years, 7 months 전에 by 야곰.
1 답변 글타래를 보이고 있습니다
-
글쓴이글
-
-
모다피참가자
- 글작성 : 7
- 답글작성 : 1
안녕하세요~! 모다피에요^^
Swift 클래스에 초기화 이니셜라이저를 구현하다가 궁금한 것이 생겨서 글 남겨요.
Designated init과 Convenience init의 정확한 의미의 차이가 궁금하더라고요.
Apple 문서에 보면..Convenience init이 convenience init은 ‘같은클래스에서 다른 이니셜라이저를 호출해야한다’라고 하는데 이 의미도 잘이해가 되지 않더라고요..init은 모든 프로퍼티를 초기화하는 메소드이라서 Designated init은 특정 프로퍼티를 보조하는 이니셜라이저인가요?
convenience init가 구체적으로 어떻게 사용되는지 궁금합니다!
감사합니다.2020-03-22 오전 10:25 #3225 -
delma참가자
- 글작성 : 2
- 답글작성 : 4
designated init은 클래스의 모든 프로퍼티가 초기화될 수 있도록 해줘야 하고,
convenience init은 쉽게 생각하면 보조 이니셜라이저라고 할 수 있는데, designated init의 파라미터 일부를 기본값으로 설정해서 convenience init 안에서 designated init 호출해서 쓸 수 있는거에요!class Beverage { var name: String var capacity: Int // 지정 이니셜라이저 - 모든 인스턴스의 저장 프로퍼티 값 초기화(할당) init(name: String, capacity: Int) { self.name = name self.capacity = capacity } //편의 이니셜라이저 - 지정 이니셜라이저를 통해 인스턴스 초기화 convenience init(name: String) { self.init(name: name, capacity: 330) } }
convenience init에는 속성 중 인스턴스 생성 시점에 지정해줘야 할 것만 파라미터로 넣어놓고, 그 안에서 기본값이 들어간 designate init 을 호출(같은 클래스에서 다른 이니셜라이저를 호출) 한다고 생각하시면 될거같아요!!
2020-03-22 오후 1:13 #3230
-
-
글쓴이글
1 답변 글타래를 보이고 있습니다
- 답변은 로그인 후 가능합니다.