앱/iOS(Swift)

[Swift] init

리드맥 2022. 1. 22. 22:21

이니셜라이저: 클래스가 부모 클래스에서 상속한 모든 속성을 포함해서, 저장속성은 초가화 하는동안 초기값을 지정해줘야함

  • 지정 이니셜라이저
Class B{
init(매개 변수) {
//sadasd
}
* 편의 이니셜라이저{
 self.init(name: name) //지정이니셜라이저를 호출해야함
}

  class A : B{
 	init() {
      //무조건 부모클래스 이니셜라이저를 호출해야함
    super.init()
    }
  }
}
  1. 부모클래스의 이니셜라이셔를 호출 해야한다
  2. 클래스 내부에 반드시 한개이상의 지정 이니셜라이저가 있어야함
  3. 클래스의 모든 저장프로퍼티를 초기화 해야함
  4. 상속받은 클래스에 지정이니셜 라이저가 있으면 반드시 부모클래스 이니셜라이저를 호출해야함.
    ex) init(){ super.init(frame: .zero) }
  5. 편의 이니셜라이저는 self.init로 지정이니셜라이저를 호출해야한다
  6. 자식클래스에서 이니셜라이저를 정의하지않는경우에만 부모 이니셜라이저를 상속받는다
  7. 부모클래스의 모든 이니셜라이저를 구현한 경우에만 부모클래스의 편의 이니셜라이저를 상속받는다