[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? 키워드를 사용하여 vehicleCar 클래스로 다운캐스팅하고, 이후에 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