iOS 기본 (swift)
[iOS - swift] 타입 캐스팅 (업 캐스팅 vs 다운 캐스팅)
jake-kim
2021. 4. 8. 22:56
업 캐스팅
- 객체를 상위 클래스(super class)로 변경
- 하위 클래스(sub class)는 항상 상위 클래스의 부분집합 이므로 언제나 성공: as로 접근
let myScrollView = CustomScrollView()
myScrollView as UIView
다운 캐스팅
- 객체를 하위 클래스로 변경
- 실패할 수 있으므로 optional 형태: as!, as? 로 접근
let myScrollView = CustomScrollView()
myScrollView as? CustomScrollView()
check(scrollView: myScrollView)
func check(scrollView: UIScrollView) {
print(scrollView as? CustomScrollView) // 다운 캐스팅 성공
}