Swift

[Swift] 19. 타입캐스팅

CodingKwon 2021. 11. 17. 23:27

1. 타입캐스팅 - is, as

  • 인스턴스의 타입을 확인 하는 용도
  • 클래스의 인스턴스를 부모 혹은 자식 클래스의 타입으로 사용할 수 있는지 확인

 

 

2. 업 캐스팅 - as

  • 부모클래스의 인스턴스로 사용할 수 있도록 컴파일러에게 타입정보를 전환
  • Any, AnyObject로 타입정보 변환 가능

 

 

3. 다운 캐스팅 - as?, as!

  • 자식 클래스의 인스턴스로 사용할 수 있도록 컴파일러에게 인스턴스의 타입정보를 전환

 

3-1. 조건부 다운 캐스팅 - as?

  • 캐스팅에 부합하지 않으면 (실패시) nil을 반환하기 때문에 결과의 타입은 옵셔널 타입

 

3-2. 강제 다운 캐스팅 - as!

  • 캐스팅에 부합하지 않으면 (실패시) 런타임 오류가 발생
  • 캐스팅에 성공하면 일반 타입을 반환