Por que um `scheduleTimer` seria acionado corretamente quando configurado fora de um bloco, mas não dentro de um bloco?

O seguinte trecho de código funciona perfeitamente quando chamado fora de um bloco de conclusão, mas o timer nunca é acionado quando eu o configuro dentro do bloco. Não entendo por que há uma diferença:

self.timer = Timer.scheduledTimer(timeInterval: 1,
                                  target: self,
                                  selector: #selector(self.foo),
                                  userInfo: nil,
                                  repeats: true)

Eu não estava usando as referências próprias ao chamá-lo inicialmente fora do bloco, mas, uma vez dentro, era necessário. No entanto, testei exatamente o mesmo código fora do bloco novamente e ele ainda funciona.

O bloco é um manipulador de conclusão chamado após solicitar permissão paraHealthKit informação relacionada.

questionAnswers(3)

yourAnswerToTheQuestion