title: Typhoon Dependency Injection and Swift 3: Appdelegate isn't AnyObject
body: <p>This code works with Typhoon Dependency Injection library (Obj-C) in Swift 2.3 but doesn't in Swift 3:</p>
  
  <p><strong>AppDelegate:</strong></p>
  
  <pre><code>class AppDelegate: UIResponder, UIApplicationDelegate {
  
      var window: UIWindow?
      var rootViewController: RootViewController?
  
      func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -&gt; Bool {
          // Override point for customization after application launch.
  
          self.window = UIWindow(frame: UIScreen.main.bounds)
          self.window?.rootViewController = self.rootViewController
          self.window?.makeKeyAndVisible()
  
          return true
      }
      ...
  }
  </code></pre>
  
  <p><strong>Application Assembly:</strong></p>
  
  <pre><code>    public class ApplicationAssembly: TyphoonAssembly {
  
          public dynamic func config() -&gt; AnyObject {
              return TyphoonDefinition.withConfigName("Configuration.plist")
          }
  
          public dynamic func appDelegate() -&gt; AnyObject {
              return TyphoonDefinition.withClass(AppDelegate.self) {
                  (definition) in
  
                  definition!.injectProperty(#selector(ApplicationAssembly.rootViewController), with: self.rootViewController())
              }
          }
   ...
  }
  </code></pre>
  
  <p>However the following error is displayed in ApplicationAssembly for any Swift 3 file expected to return 'AnyObject':
  <em>"No 'withClass' candidates produce the expected contextual result type 'AnyObject'</em></p>
  
  <p>Might anyone have an insight into the incompatibility of the Obj-c Typhoon code base with Swift 3?</p>
  
  <p><a href="https://i.stack.imgur.com/CkEjx.png" rel="nofollow noreferrer">Screen capture of error line</a></p>