Casting
let x = 3
// x: Int = 3
let y = x as Intclass aClass {}
class aSubClass: aClass {}
let myObject = aSubClass() as aClass
// myObject: aClass = aSubClass()
protocol aProtocol {}
class aConformant: aProtocol {}
let myProtocolConformant = aConformant() as aProtocol
// myProtocolConformant: aProtocol = aConformant()Casting Down
class aClass {}
class aSubClass: aClass {}
let myEncapsulatedObject: aClass = aSubClass()
// myEncapsulatedObject: aClass = aSubClass()
let myObject = myEncapsulatedObject as? aSubClass
// myObject: aSubClass = aSubClass()
let undeclaredType: Any = 3
// undeclaredType: Any = 3
let myInt = undeclaredType as! Int
// myInt: Int = 3
let myFailingCast = undeclaredType as! String
// Could not cast value of type Int to StringLast updated
Was this helpful?