Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Xcode调试器不';t显示某些变量的值,具体取决于范围_Swift_Xcode_Debugging - Fatal编程技术网

Swift Xcode调试器不';t显示某些变量的值,具体取决于范围

Swift Xcode调试器不';t显示某些变量的值,具体取决于范围,swift,xcode,debugging,Swift,Xcode,Debugging,我正在用Xcode调试一个简单的新MacOSX应用程序。我在viewDidLoad()中有一段代码。viewDidLoad()开头声明的变量(double)在调试区域中正确显示,但for循环中定义的某些double显示空白值。print()语句显示变量具有值。我的代码在th for循环范围内的断点处停止,因此应该显示变量 这种行为有什么原因吗 过于简化的viewController.swift代码示例: override func viewDidLoad() { super.viewDi

我正在用Xcode调试一个简单的新MacOSX应用程序。我在viewDidLoad()中有一段代码。viewDidLoad()开头声明的变量(double)在调试区域中正确显示,但for循环中定义的某些double显示空白值。print()语句显示变量具有值。我的代码在th for循环范围内的断点处停止,因此应该显示变量

这种行为有什么原因吗

过于简化的viewController.swift代码示例:

override func viewDidLoad() {
    super.viewDidLoad()

    var buyPrice: Double = 0.0
    var sellPrice: Double = 0.0
    ...

    for index in 0 ... roc5.percent.count-1 {
       ...
       let closeYearStart = stockPriceArray[currentYearStartIndex].close
       let closeYearEnd = stockPriceArray[currentYearEndIndex].close
       print("start: \(closeYearStart)")
       print("end:  \(closeYearEnd)")
       ...
     }
 }
当我通过将“closeYearStart”声明移到for循环之外(接近“buyPrice”声明)重新编码时,该Double将显示在调试器中,但在for循环中声明的“closeYearEnd”在调试器中仍然不显示任何值。print语句确认了我期望的值。下图显示了到达断点时调试器中重新编码版本的状态

因此,只要在for循环外声明Double变量,调试器就会按预期显示该值。在for循环中声明的任何Double都不会显示任何值

这个行为向我证实了Xcode不会在for循环中显示变量——只显示for循环之外的变量。for循环中定义的字符串显示正确,这似乎是Double的问题

杂项:

  • 我在Catalina 10.15.5下使用Xcode 11.5(11E608c)
  • 这是一个调试版本。我没有设置任何优化等
  • 我重新启动了Xcode,以及“清理构建文件夹”和删除“派生数据”文件夹
这是Xcode中已知的错误吗?在以前的一个项目中,URL总是空的,所以我必须重新编码到字符串以进行调试。我可以解决这个问题,但这真的很烦人

任何帮助都将不胜感激