代码之家  ›  专栏  ›  技术社区  ›  kawingkelvin

swift DEBER语句不会中断点,但会打印

  •  1
  • kawingkelvin  · 技术社区  · 6 年前

    我在do中加入了延迟,就像这样

    do {
        defer {                     
            self.captureSession?.commitConfiguration()
            print("commitConfiguration")
        }
    
        self.captureSession?.beginConfiguration() 
        // try a bunch AV session setup calls
        ...
    }
    catch {
        // error
    }
    

    我试图设置一个断点,以确保在最后进入延迟块。令我惊讶的是,它没有。我查看了文档,运行了应用程序,似乎没有什么问题。所以我写了一份打印声明。瞧,它确实打印了它,显示它可能确实执行了,即使调试断点从未被激活。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Duncan C    6 年前

    是的,我注意到了完全相同的事情。如果内存可用的话,它是在使用Xcode 9.4和High Sierra时工作的。延迟触发,但断点不会中断。