[swift] Swift에서 생성된 객체의 타입 확인하기

Swift에서는 객체의 타입을 확인하는 다양한 방법이 제공됩니다. 객체의 타입을 확인하는 것은 객체를 안전하게 처리하고 원하는 동작을 수행하기 위해 매우 중요합니다. 이번 글에서는 Swift에서 생성된 객체의 타입을 확인하는 방법에 대해 알아보겠습니다.

1. is 연산자를 사용한 타입 확인

is 연산자를 사용하여 객체의 타입을 확인할 수 있습니다. 다음 예제는 is 연산자를 사용하여 객체가 특정 타입인지 확인하는 예제입니다.

class Animal {
    func makeSound() {
        print("Animal sound")
    }
}

class Dog: Animal {
    override func makeSound() {
        print("Woof")
    }
}

class Cat: Animal {
    override func makeSound() {
        print("Meow")
    }
}

let animal: Animal = Dog()
if animal is Dog {
    print("It's a dog!")
} else if animal is Cat {
    print("It's a cat!")
} else {
    print("Unknown animal")
}

위의 예제에서 animal 객체는 Dog의 인스턴스로 생성되었지만, is 연산자를 사용하여 Dog 타입인지 확인합니다.

2. 타입 캐스팅을 사용한 타입 확인

타입 캐스팅을 사용하여 객체의 타입을 확인할 수도 있습니다. 타입 캐스팅은 객체를 다른 타입으로 변환하는 것을 말합니다. as?를 사용하여 타입 캐스팅을 시도하고, 성공하면 객체의 타입을 확인할 수 있습니다.

let animal: Animal = Dog()
if let dog = animal as? Dog {
    print("It's a dog!")
} else if let cat = animal as? Cat {
    print("It's a cat!")
} else {
    print("Unknown animal")
}

위의 예제에서 animal 객체를 Dog 타입으로 타입 캐스팅하여 성공하면 “It’s a dog!”를 출력합니다.

3. type(of:) 함수를 사용한 타입 확인

Swift에서는 type(of:) 함수를 사용하여 객체의 타입을 확인할 수도 있습니다. 이 함수는 객체의 타입을 동적으로 확인하는 데 사용됩니다.

let animal: Animal = Dog()
print(type(of: animal))

위의 예제에서 type(of:) 함수를 사용하여 animal 객체의 타입을 확인하여 출력합니다.

객체의 타입을 확인하는 방법은 이제 알아보았습니다. 이를 활용하여 Swift 프로그램에서 객체를 안전하게 처리하고 원하는 동작을 수행할 수 있습니다.

더 자세한 내용은 Swift 공식 문서를 참조하세요.