[swift] 타입 캐스팅을 이용한 프로토콜 검사
Swift에서는 타입 캐스팅을 사용하여 인스턴스의 타입을 확인하거나, 부모 클래스를 자식 클래스로 캐스팅할 수 있습니다. 프로토콜을 준수하는지 여부도 타입 캐스팅을 통해 확인할 수 있습니다.
프로토콜 타입 캐스팅
프로토콜 타입 캐스팅은 인스턴스가 특정 프로토콜을 준수하는지 여부를 확인하는 데 사용됩니다. 이때 is
키워드를 사용하여 어떤 타입에 대한 프로토콜 준수 여부를 검사할 수 있습니다.
protocol MyProtocol {
func myMethod()
}
class MyClass: MyProtocol {
func myMethod() {
// implementation
}
}
let instance = MyClass()
if instance is MyProtocol {
print("인스턴스가 MyProtocol을 준수합니다.")
} else {
print("인스턴스가 MyProtocol을 준수하지 않습니다.")
}
위 예제에서 instance is MyProtocol
은 instance
가 MyProtocol
을 준수하는지를 확인하고, 그에 따라 적절한 출력을 합니다.
프로토콜 타입 다운캐스팅
프로토콜 타입 캐스팅을 통해 부모 클래스를 자식 클래스로 다운캐스팅할 수도 있습니다. 이때 as?
나 as!
키워드를 사용하여 원하는 프로토콜에 해당하는 인스턴스로 캐스팅할 수 있습니다.
protocol MyProtocol {
func myMethod()
}
class MyClass: MyProtocol {
func myMethod() {
// implementation
}
}
let instance: MyProtocol = MyClass()
if let myInstance = instance as? MyClass {
print("다운캐스팅 성공")
myInstance.myMethod()
} else {
print("다운캐스팅 실패")
}
위 예제에서 instance as? MyClass
는 instance
를 MyClass
로 다운캐스팅하는데 성공하면 myInstance
에 할당하고, 그에 따라 적절한 출력을 합니다.
타입 캐스팅을 통해 프로토콜 검사와 캐스팅을 유연하게 활용하여 Swift 언어의 강력한 특징을 활용할 수 있습니다.
참고: The Swift Programming Language - Type Casting