Type Casting and Type Checking
Discover how Swift data types may be related to each other while exploring the concepts of type casting and type identification.
We'll cover the following
Type casting
When writing Swift code, situations will occur where the compiler is unable to identify the specific type of a value. This is often the case when a value of ambiguous or unexpected type is returned from a method or function call. In this situation, it may be necessary to let the compiler know the type of value that your code is expecting or requires using the as
keyword (a concept referred to as type casting).
The following code, for example, lets the compiler know that the value returned from a method named object(forKey:)
needs to be treated as a String
type:
let myValue = record.object(forKey: "comment") as! String
Upcasting
In fact, there are two types of casting which are referred to as upcasting and downcasting. Upcasting occurs when an object of a particular class is cast to one of its superclasses. Upcasting is performed using the as
keyword and is also referred to as guaranteed conversion since the compiler can tell from the code that the cast will be successful.
When using Swift to develop apps for iOS, for example, you may find yourself working with a set of classes from the UIKit framework used to design user interface layouts. For example, the UIButton
class is used to display a button control on the screen and is a subclass of the UIControl
class (which is within itself a subclass of UIView
) as shown in the fragment of the UIKit class hierarchy shown below:
Get hands-on with 1400+ tech skills courses.