Почему `scheduleTimer` работает правильно при установке вне блока, но не внутри блока?

Следующий фрагмент кода отлично работает при вызове вне блока завершения, но таймер никогда не срабатывает, когда я устанавливаю его внутри блока. Я не понимаю, почему есть разница

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

Я не использовал ссылки на себя, когда вызывал его изначально вне блока, но потом внутри, это было необходимо. Однако я снова тестировал тот же самый код вне блока, и он все еще работает.

Блок является средством завершения, которое вызывается после запроса разрешения дляHealthKit связанная информация.

Ответы на вопрос(3)

Ваш ответ на вопрос