Оператор swift defer не ставит точку останова, но печатает - PullRequest
0 голосов
/ 17 декабря 2018

Я поместил отсрочку внутри do, вот так

do {
    defer {                     
        self.captureSession?.commitConfiguration()
        print("commitConfiguration")
    }

    self.captureSession?.beginConfiguration() 
    // try a bunch AV session setup calls
    ...
}
catch {
    // error
}

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

Кто-нибудь наблюдал это в Xcode 10.1 High Sierra?

1 Ответ

0 голосов
/ 17 декабря 2018

Да, я заметил точно так же.Если память не изменяет, она работает на Xcode 9.4 и High Sierra.Отсрочка срабатывает, но точка останова не прерывается.

...