[swift] 타입 캐스팅 문법
1. 타입 확인 (Type Check)
특정 인스턴스가 특정 클래스의 인스턴스인지, 혹은 특정 프로토콜을 준수하는 인스턴스인지 확인할 때는 is
키워드를 사용합니다.
if someInstance is SomeClass {
// someInstance가 SomeClass의 인스턴스인 경우
} else if someInstance is SomeProtocol {
// someInstance가 SomeProtocol을 준수하는 경우
}
2. 다운캐스팅 (Downcasting)
상위 클래스 타입으로 선언된 인스턴스를 실제 하위 클래스 타입으로 다운캐스팅하기 위해서는 as?
또는 as!
연산자를 사용합니다.
- 옵셔널 다운캐스팅 (
as?
)
if let someChildInstance = someInstance as? SomeChildClass {
// SomeChildClass로의 다운캐스팅에 성공한 경우
} else {
// 다운캐스팅 실패
}
- 강제 다운캐스팅 (
as!
)
let someChildInstance = someInstance as! SomeChildClass
// SomeChildClass로의 강제 다운캐스팅
주의: 강제 다운캐스팅 시, 만약 다운캐스팅에 실패하면 런타임 오류가 발생하므로, 신중히 사용해야 합니다.
타입 캐스팅은 Swift에서 다형성(polymorphism)을 사용하거나 런타임에서 인스턴스의 타입을 동적으로 처리할 때 유용하게 활용될 수 있습니다. 또한, 올바른 타입 캐스팅을 통해 안전하고 효율적인 코드를 작성할 수 있습니다.
참고 문헌: The Swift Programming Language - Type Casting
이상으로 Swift에서의 타입 캐스팅에 대해 간략히 소개드렸습니다. 추가 질문이 있으시면 언제든지 물어보세요!