Swift Closures - Capturando a si mesmo como fraco

Estou tentando resolver um forte ciclo de referência baseado em fechamento no Swift.
No código abaixo, o objeto é retido pelo controlador de exibição proprietário.ProgressHUD é umUIView isso também é retido pelo controlador de exibição proprietário.ProgressHUD vaza toda vez que o manipulador de conclusão é chamado. Ao usar o novo recurso de captura de fechamento, declarar-se como fraco ou não proprietário não resolve o vazamento de memória.

object.setCompletionHandler { [weak self] (error) -> Void in
    if(!error){
        self?.tableView.reloadData()
    }
    self?.progressHUD?.hide(false)
}

No entanto, se eu declarar um var fraco para si mesmo fora do fechamento, ele corrigirá o vazamento de memória, assim:

weak var weakSelf = self
object.setCompletionHandler { (error) -> Void in
    if(!error){
        weakSelf?.tableView.reloadData()
    }
    weakSelf?.progressHUD?.hide(false)
}

Alguma idéia de por que isso não está funcionando com a captura Swift?

questionAnswers(4)

yourAnswerToTheQuestion