[swift] 다운캐스팅을 이용한 특정 속성 접근
다운캐스팅을 사용하면 스위프트에서 상위 클래스 유형을 하위 클래스 유형으로 변환할 수 있습니다. 이를 통해 특정 클래스의 속성에 접근할 수 있습니다. 이 문서에서는 다운캐스팅을 사용하여 특정 클래스의 속성에 접근하는 방법에 대해 알아보겠습니다.
다운캐스팅이란?
다운캐스팅은 스위프트에서 상위 클래스 유형을 하위 클래스 유형으로 변환하는 것을 의미합니다. 이를 통해 상위 클래스에 정의된 속성과 메서드에 접근할 수 있게 됩니다.
class Vehicle {
var name: String = ""
}
class Car: Vehicle {
var speed: Double = 0.0
}
let vehicle = Car()
if let car = vehicle as? Car {
print(car.speed)
}
위 코드에서 as?
키워드를 사용하여 vehicle
을 Car
클래스로 다운캐스팅하고, 이후에 car
상수를 사용하여 Car
클래스의 speed
속성에 접근합니다.
다운캐스팅을 이용한 특정 속성 접근
다운캐스팅을 통해 특정 클래스의 속성에 접근하려면 먼저 다운캐스팅을 수행한 후, 해당 속성에 접근할 수 있습니다.
class Vehicle {
var name: String = ""
}
class Car: Vehicle {
var speed: Double = 0.0
}
let vehicles: [Vehicle] = [Car(), Vehicle()]
for vehicle in vehicles {
if let car = vehicle as? Car {
print(car.speed)
}
}
위 코드에서는 vehicles
배열의 각 요소를 Car
로 다운캐스팅하여 speed
속성에 접근합니다.
다운캐스팅을 통해 특정 클래스의 속성에 접근하는 방법을 소개했습니다. 이를 통해 상위 클래스와 하위 클래스 간의 유연한 상호작용을 구현할 수 있습니다.
참고 문헌: https://docs.swift.org/swift-book/LanguageGuide/TypeCasting.html https://www.hackingwithswift.com/example-code/language/how-to-downcast-a-variable-from-a-superclass-to-a-subclass