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