AnyObject

The protocol to which all classes implicitly conform.

When used as a concrete type, all known @objc methods and properties are available, as implicitly-unwrapped-optional methods and properties respectively, on each instance of AnyObject. For example:

  • class C {
  •   @objc func getCValue() -> Int { return 42 }
  • }
  •  
  • // If x has a method @objc getValue()->Int, call it and
  • // return the result.  Otherwise, return nil.
  • func getCValue1(x: AnyObject) -> Int? {
  •   if let f: ()->Int = **x.getCValue** {
  •     return f()
  •   }
  •   return nil
  • }
  •  
  • // A more idiomatic implementation using "optional chaining"
  • func getCValue2(x: AnyObject) -> Int? {
  •   return **x.getCValue?()**
  • }
  •  
  • // An implementation that assumes the required method is present
  • func getCValue3(x: AnyObject) -> **Int** {
  •   return **x.getCValue()** // x.getCValue is implicitly unwrapped.
  • }

See also: AnyClass

Import
  • import Swift