관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 타입 캐스팅 (업 캐스팅 vs 다운 캐스팅) 본문

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) // 다운 캐스팅 성공
}

 

Comments