unsafeDowncast

func unsafeDowncast<T>(_: AnyObject, to: T.Type)

Returns the given instance cast unconditionally to the specified type.

The instance passed as x must be an instance of type T.

Use this function instead of unsafeBitcast(_:to:) because this function is more restrictive and still performs a check in debug builds. In -O builds, no test is performed to ensure that x actually has the dynamic type T.

Warning: This function trades safety for performance. Use unsafeDowncast(_:to:) only when you are confident that x is T always evaluates to true, and only after x as! T has proven to be a performance problem.

Parameters: x: An instance to cast to type T. type: The type T to which x is cast. Returns: The instance x, cast to type T.

Declaration

func unsafeDowncast<T>(_ x: AnyObject, to type: T.Type) -> T where T : AnyObject