我有一个简单的测试:
func testAdd(){
let result = calc.evaluate(op: "+", arg1: 2.0, arg2: 9.0)
print("result - \(result)")
XCTAssert(result == 11.0, "Calculator operation failed")
}
它确实通过了,但我尝试在控制台中设置断点并检查值,但没有任何值,为什么?请看下面的截图:
当我右键单击“结果”(在左 Pane 中)并选择“打印”时,“结果”输出的说明是 - (Double) result = <variable not available>
但即使是 print 函数也确实打印了那个值。为什么?
最佳答案
您的“结果”变量是一个临时的本地中间变量。
如果代码是在 Release build 中编译的(与 Debug build 相对),那么编译器可能已经优化了大部分中间变量,并以完全不同的顺序完成相同的计算以获得相同的结果.因此,在生成的运行代码中没有要打印的具有该值的变量。
如果您想查看变量值,请尝试在build设置中切换为使用调试构建。或者将所需的变量值分配给在另一个 Swift 文件中实例化的全局变量(Swift 编译器不太可能将其优化为不存在)。
关于swift - 在使用断点 Swift 时查找变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55892196/