¿Cómo obtengo la reference keyWindow en una aplicación rápida?

En Objective-C en el método viewDidLoad de un UIViewController, hago esto para get la reference keyWindow en mi aplicación iOS:

UIWindow * keyWindow = [[UIApplication shanetworkingApplication] keyWindow]; 

Entonces, estoy portando este controller de vista en Swift y hago esto con la llamada viewDidLoad:

 let window = UIApplication.shanetworkingApplication().keyWindow 

Estoy tratando de entender por qué la window es nula. Cuando pongo un punto de interrupción justo después de esa línea, inspecciono la window en la console y obtengo esto:

 (lldb) po window nil 

¿Cómo puedo hacer que window sea una reference válida a keyWindow de mi aplicación en swift?

Llegué a esta pregunta cuando estaba buscando una window rápida. Si desea get una window en lugar de keyWindow, intente esto:

  if let app = UIApplication.shanetworkingApplication().delegate as? AppDelegate, let window = app.window { MBProgressHUD.show(text, view:window) } 

Actualizado para Swift 3: (Gracias @Trevor)

  if let app = UIApplication.shanetworking.delegate as? AppDelegate, let window = app.window { MBProgressHUD.show(text, view:window) } 

La window de la key aún no debe configurarse en el momento de viewDidLoad. Su código funciona bien en viewDidAppear. Alternativamente, puede get la matriz de windows en viewDidLoad y get una (si hay más de una) de las windows de esa matriz.

Actualización de la respuesta de superarts.org para Swift 3:

 if let app = UIApplication.shanetworking.delegate as? AppDelegate, let window = app.window { MBProgressHUD.show(text, view: window) } 

No llame a la window en la function didLoad. Llame a la window de teclas en la function viewDidAppear de ViewController.