dispatch_async e valor de retorno não nulo inesperado na função void no Swift

Eu tenho uma função na minhaappDelegate que retorna a localização atual do usuário.

Agora eu quero chamá-lo de forma assíncrona em outro lugar e fiz:

func handleLocation() -> CLLocation {
  let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
  dispatch_async(dispatch_get_global_queue(priority, 0)) {
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.startGPS()
    while (!appDelegate.isLocationFixed()) {
      sleep(1)
    }
    dispatch_async(dispatch_get_main_queue()) {
      return appDelegate.getLocation()
    }
  }
}

mas agora esta linhareturn appDelegate.getLocation() me traz o erro:

valor de retorno não nulo inesperado na função nulo

Eu não sei muito sobre tópicos emSwift ainda assim, você poderia me ajudar a corrigir esse problema?