Type casting is the process of checking the type of an instance at runtime and converting it into another type. In Swift, type casting can be done using the 'is' and 'as' operators. The 'is' operator is used to check the type of an instance, while the 'as' operator is used to downcast (convert) an instance to a subclass type.
Let's take a look at an example of type casting in Swift:
class Animal {
func makeSound() {
print("Animal makes a sound")
}
}
class Dog: Animal {
func bark() {
print("Dog barks")
}
}
let animal = Dog()
if animal is Dog {
print("Instance is of type Dog")
}
if let dog = animal as? Dog {
dog.bark()
}
In the above code snippet, we have a base class 'Animal' and a subclass 'Dog'. We create an instance 'animal' of type 'Dog'. We then use the 'is' operator to check if the instance is of type 'Dog' and print a message accordingly. Next, we use the 'as?' operator to downcast the instance to type 'Dog' and call the 'bark' method.
Type casting is useful when dealing with polymorphic behavior and working with class hierarchies. It helps in safely converting instances to their appropriate subclass types and accessing subclass-specific functionality.