[swift] 타입 캐스팅을 이용한 객체 타입 지정
타입 캐스팅은 Swift에서 객체의 타입을 확인하거나, 다른 타입으로 변환하는 것을 말합니다. 이 기능을 사용하여 객체의 타입을 확인하고 해당 타입으로 객체를 다루는 방법에 대해 알아보겠습니다.
1. 타입 확인 (Type Check)
class Animal {
func makeSound() {
print("Some sound")
}
}
class Dog: Animal {
func bark() {
print("Woof woof")
}
}
let someAnimal = Dog()
if someAnimal is Dog {
print("It's a dog!")
}
위의 예제에서 someAnimal
이 Dog
타입인지 확인하기 위해 is
키워드를 사용했습니다.
2. 다운캐스팅 (Downcasting)
let someAnotherAnimal = Animal()
// 다운캐스팅을 통해 객체의 실제 타입에 맞게 변환
if let dog = someAnotherAnimal as? Dog {
dog.bark()
} else {
print("This animal is not a dog")
}
as?
키워드를 사용하여 someAnotherAnimal
을 Dog
로 다운캐스팅하고, 성공 여부에 따라 조건문을 통해 처리할 수 있습니다.
3. 강제 다운캐스팅 (Forced Downcasting)
let anotherAnimal = Animal()
// 강제 다운캐스팅을 통해 객체의 실제 타입에 맞게 변환
let anotherDog = anotherAnimal as! Dog
anotherDog.bark()
as!
키워드를 사용하여 객체를 강제로 다운캐스팅할 수 있습니다. 하지만 만약 타입이 맞지 않는다면 런타임 에러가 발생할 수 있으므로 주의가 필요합니다.
타입 캐스팅을 이용하면 객체의 타입을 동적으로 판별하고 변환할 수 있어, Swift에서 유연한 객체 다루기를 가능하게 합니다.
참고 자료: The Swift Programming Language - Type Casting