我在一个任务里面放了一个延期,就像这样。

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

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

我试图设置一个断点,以确保延迟块在末尾被踩入。令我惊讶的是,它没有。我检查了文档,运行了应用程序,看起来没有什么问题。所以我写了一份打印声明。你看,它确实打印了它,显示它可能确实执行了,即使调试断点从未被激活。
有人在Xcode 10.1 High Sierra看到过这个吗?

最佳答案

是的,我也注意到了同样的事情。如果内存可用,则使用xcode 9.4和high sierra。延迟触发,但断点不会中断。

关于swift - swift defer语句不会破坏点但会打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53807181/

10-10 18:28
查看更多