Youngminah / TIL

🌱 iOS 필수 숙지 개념 레포
282 stars 20 forks source link

required init?(coder:)이란? #94

Closed Youngminah closed 2 years ago

Youngminah commented 2 years ago

코드로 구현하다보면 자주 마주치는 아래의 코드

required init(coder: NSCoder) {
  fatalError("init(coder) has not been implemented")
}


NSCoding

image

어쩔땐 required이니셜라이저를 쓰고, 또 어쩔땐 왜 안써도 될까?

예제

class CustomView: UIView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        print("init(frame: CGRect)")
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        print("init?(coder: NSCoder)")
    }

   override func awakeFromNib() {
        super.awakeFromNib()
        print("awake from nib")
    }
}