iOS 응용 (swift)
[iOS - swift] @available(*, unavailable) 사용하여 비가용성 정의
jake-kim
2021. 7. 13. 22:59
비가용성 정의
- xib를 사용하지 않고 code로만 진행하는 경우, 보통 required init?(coder:)는 fatalError 발생하도록 설정
- runtime error를 발생시키는 코드
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
- @available(*, unavailable)을 설정
- Compile time에 error를 발생시키는 코드이므로 더욱 좋은 코드
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
ex) custom button에서 xib를 사용하지 않고 code만 사용하여 구현되도록 정의
class CustomButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
- @available(*, unavailable)에 접근할때 컴파일 에러 발생
- 'init(coder:)' is unavailable
