

The keyword as can be used to upcast or downcast. If that works for you, great! But I don't think it strikes the right balance between readable, concise and safe. A variable of a class may refer to an instance of its subclass or superclass.

Ps: I've had this argument before at work, someone was saying we should use guard let v = v else Variables and Constants that live in the scope of the class are referred to as instance variables. Imagine having "accessing nested view controller n✣ in navigation controller" as your error message instead of "Unexpectedly found nil while unwrapping an Optional" Initializers allow us to set the initial state of a class.
#Swift downcast initializer code
