[swift] 타입 캐스팅을 활용한 객체 이동

타입 캐스팅(Type Casting)은 Swift에서 객체의 타입을 확인하거나 다른 타입으로 변환하는 기능을 말합니다. 이 기능을 활용하면 객체를 알맞은 타입으로 이동시킬 수 있습니다. 이번 포스트에서는 간단한 예제를 통해 타입 캐스팅을 활용한 객체 이동의 기초를 살펴보겠습니다.

업캐스팅과 다운캐스팅

업캐스팅

업캐스팅은 부모 클래스 타입으로 자식 클래스의 객체를 이동하는 것을 말합니다. 즉, 하위 클래스의 객체를 상위 클래스 타입으로 캐스팅하는 것입니다. 업캐스팅은 다음과 같이 할 수 있습니다.

class Person {
    var name: String = ""
}

class Student: Person {
    var school: String = ""
}

let person = Person()
let student = Student()

let personFromStudent: Person = student

위의 예제에서 student 객체를 Person 타입으로 캐스팅하여 personFromStudent로 할당하였습니다.

다운캐스팅

다운캐스팅은 반대로 상위 클래스 타입의 객체를 하위 클래스 타입으로 캐스팅하는 것을 말합니다. 이때, 다운캐스팅을 수행하기 전에 올바른 타입이라는 것을 확인해야 합니다. 다운캐스팅은 다음과 같이 할 수 있습니다.

if let studentFromPerson = person as? Student {
    print("\(studentFromPerson.name) is a student")
} else {
    print("This person is not a student")
}

위의 예제에서 person 객체를 Student 타입으로 다운캐스팅하여 studentFromPerson으로 할당하였습니다. 다운캐스팅을 시도하기 전에 as?를 통해 올바른 타입인지 확인한 후, 성공 시 해당 타입으로 객체를 이동시킵니다.

이처럼 타입 캐스팅을 활용하면 객체를 다양한 형태로 이동시킬 수 있습니다.

결론

타입 캐스팅은 Swift에서 안전하고 강력한 객체 이동 기능을 제공합니다. 올바른 타입의 객체로 캐스팅하여 객체를 이동시킬 때 안전하게 사용할 수 있습니다. 이를 활용하여 유연하고 효율적인 객체 이동을 구현할 수 있습니다.

더 많은 내용과 실용적인 활용법은 Swift 공식 문서에서 확인할 수 있습니다.