[Swift] 타입 캐스팅

Jade·2023년 7월 16일
0

TIL

목록 보기
4/10

타입 캐스팅에 대해서 Araboza


타입 캐스팅

  • 인스턴스의 타입을 확인 하는 용도 또는 인스턴스를 부모 혹은 자식 클래스의 타입으로 사용할 수 있는지, 프로토콜로 취급할 수 있는지 등을 확인하는 용도로 사용한다. (is, as 사용)

  • 타입 확인

    • is 사용
  • 업 캐스팅

    • as 사용
    • 부모 클래스의 인스턴스로 사용할 수 있도록 컴파일러에게 타입정보를 전환한다.
    • Any, AnyObject로도 변환 가능하다. (암시적으로 처리되므로 꼭 필요한 경우가 아니라면 생략해도 무방)
  • 다운 캐스팅

    • as? 또는 as! 사용

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

    • 조건부 다운 캐스팅

      • as? 사용
      • 캐스팅에 실패하면, 즉 캐스팅하려는 타입에 부합하지 않는 인스턴스라면 nil을 반환하기 때문에 결과의 타입은 옵셔널 타입이다.
    • 강제 다운 캐스팅

      • as! 사용
      • 캐스팅에 실패하면 런타임 오류 발생, 캐스팅에 성공하면 옵셔널이 아닌 일반 타입 반환한다.
  • 프로토콜과 타입 캐스팅

    • 프로토콜을 채택하고 있는지 확인한다.
    • 포로토콜로서 타입 캐스팅을 통해 프로토콜에서 정의된 프로퍼티와 메서드 사용 가능하다.
profile
응애 iOS 개발자

0개의 댓글