Cast instances of the Objective-C
id type to a specific Swift type.
In Objective-C, the
id type represents objects that are instances of any Objective-C class. The
id type is instead imported by Swift as the
Any type. When you pass a Swift instance to an Objective-C API, it's bridged as an
id parameter so that it's usable in the API as an Objective-C object. When
id values are imported into Swift as
Any, the runtime automatically handles bridging back to either class references or value types.
Downcast Objects to Call Methods and Access Properties
When you work with objects of type
Any where you know the underlying type, it's often useful to downcast those objects to the underlying type. However, because the
Any type can refer to any type, a downcast to a more specific type isn't guaranteed by the compiler to succeed.
You can use the conditional type cast operator (
as?), which returns an optional value of the type you are trying to downcast to:
If you're completely certain about the type of the object, you can use the forced downcast operator (
However, if a forced downcast fails, a runtime error is triggered: