Swift (lldb)错误:闭包中不包含匿名闭包参数

Swift (lldb)错误:闭包中不包含匿名闭包参数,swift,xcode,lldb,Swift,Xcode,Lldb,近似 但与lldb有关 tableViews.forEach { $0.dataSource = self $0.delegate = self $0.estimatedRowHeight = 30 ^^^^^^^^^^^^^^ breakpoint is here } 试图调试 (lldb)p$0.5 错误::3:1:错误:中未包含匿名闭包参数 一个0.5美元的收尾 (lldb)采购订单$0.5 错误::3:1:错误:中未

近似 但与lldb有关

tableViews.forEach {
        $0.dataSource = self
        $0.delegate = self

        $0.estimatedRowHeight = 30
          ^^^^^^^^^^^^^^ breakpoint is here
}
试图调试

(lldb)p$0.5

错误::3:1:错误:中未包含匿名闭包参数 一个0.5美元的收尾

(lldb)采购订单$0.5

错误::3:1:错误:中未包含匿名闭包参数 结束 0.5美元

可视化调试(将光标定位在$0上)不起作用, 您可以扩展树,并深入到您感兴趣的变量。但是有一个小问题,uitableview中有无数这样的工具,因此可视化调试的意图为 理解地狱

鉴于调试工作的可视部分,必须有某种方法 从命令行中有吗????我怎么能只得到我感兴趣的部分呢?

实际上,“p”命令编译您键入的文本,就好像表达式已经出现在您停止的帧的文本中一样。要做到这一点,它必须完全重新创建上下文。lldb在这方面做得很好,但它还不知道如何在编译表达式时使用的上下文中模拟$closure自动变量

但是更一般地说,
print
试图完成的工作是一项更为艰巨的任务,即仅查看局部变量,毫不奇怪,lldb还有一种更直接的方式来查看简单的局部变量。Xcode使用该工具来实现局部视图和工具提示。但它也是一个lldb命令行命令:

(lldb) frame var $0
“frame var”命令没有完整的语言解析器,例如,它不能计算表达式。但它确实允许您指定结构的元素,例如:

(lldb) frame var $0.delegate

使用
frame var
命令您可能会更幸运。

没错,正如您所说的$0上的frame var本身及其道具在计算属性上不起作用,而旧版lldb gdb和objective c runtime在Xcode 10.2中添加的“v”运行速度非常快。但不知道有多可靠。