[swift] 타입 캐스팅(Type Casting)

타입 캐스팅은 Swift에서 인스턴스의 타입을 확인하거나 다른 타입으로 캐스팅하는 방법입니다. 이는 클래스의 인스턴스를 부모 클래스 혹은 자식 클래스로 캐스팅하거나 프로토콜로 인스턴스를 캐스팅할 때 사용됩니다.

인스턴스 타입 확인하기

is 키워드를 사용하여 인스턴스의 타입을 확인할 수 있습니다.

if someInstance is SomeClass {
    print("someInstance는 SomeClass의 인스턴스입니다.")
} else if someInstance is SomeProtocol {
    print("someInstance는 SomeProtocol을 준수하는 인스턴스입니다.")
}

다운캐스팅(Downcasting)

다운캐스팅은 부모 클래스 타입이나 프로토콜 타입을 자식 클래스 타입으로 캐스팅하는 것을 말합니다. 이를 위해서는 명시적으로 해당 타입으로 캐스팅을 해주어야 합니다.

if let downcastedInstance = parentInstance as? ChildClass {
    print("다운캐스팅 성공")
}

업캐스팅(Upcasting)

업캐스팅은 자식 클래스 타입을 부모 클래스 타입으로 캐스팅하는 것을 말합니다. 이는 별도의 작업없이 자동으로 처리됩니다.

let parentInstance: ParentClass = ChildClass()

타입 캐스팅은 Swift에서 다양한 타입 간에 유연한 변환을 가능케 하며, 안전한 다운캐스팅을 통해 런타임 오류를 방지할 수 있습니다.

내용이 도움이 되셨다면 여기서 추가 자료를 확인하세요.