LLDB“修复后已应用”对于我要打印的内容似乎不正确

时间:2018-10-19 16:27:52

标签: swift xcode lldb

我正在使用Xcode 10和Swift,并且我的代码中有一个断点:

    let logoWPoints = logoUIImage.size.width
    let logoHPoints = logoUIImage.size.height
    let logoScale = logoUIImage.scale
    let logoWPixels = logoWPoints * logoScale
    let logoHPixels = logoHPoints * logoScale // <--- breakpoint

我在LLDB的控制台中输入“ print logoWPoints”,这会导致错误:

  

(CGFloat)$ R0 = 281应用Fix-it,固定表达式为:       logoWPixels

错了!我想要logoWPoints就像输入的一样。我最近一直在看这个。怎么了?

更新-当我在LLDB中使用frame variable命令时,可以看到以下消息:logoWPoints不可用:

  

(CGFloat)logoWPoints =变量不可用

奇怪的是,如果我打印出等于(logoUIImage.size.width)的值,我得到的结果就很好。那么为什么说它不可用?

1 个答案:

答案 0 :(得分:0)

对于这个问题,已经有一个答案,可以回溯到与“ Fix-it Applied”消息相关的“ variable not available”消息,该消息与编译器优化有关。

对于那些有Fix-it问题的用户,请参见以下答案以获取详细信息:lldb error: variable not available