【问题标题】:present ViewController using lldb使用 lldb 呈现 ViewController
【发布时间】:2018-01-06 18:05:06
【问题描述】:

有没有办法直接从 lldb 调试器中呈现 VewController。 我说的是使用类似的东西:

(lldb) expression SomeViewController.viewDidLoad()

【问题讨论】:

  • viewDidLoad 不显示任何内容。
  • @rmaddy ups,好的,那怎么办?
  • 暂时忘记调试器。你知道如何在你的应用中展示一个视图控制器吗?
  • 然后在调试器中尝试。请记住,您需要尝试能够在您的应用中实际编译和工作的代码。
  • 您在调试 Swift 应用程序时尝试过吗?如果您将其更改为 Swift 代码,它会起作用,但在我继续之前,我无法让我的视图控制器呈现。我仍然学到了一些新东西。

标签: ios swift debugging viewcontroller lldb


【解决方案1】:

调试器中有一个expression 命令可用,它允许您执行代码 - 很像 Web 浏览器中的 Javascript 控制台。

在这种情况下,您希望:

  1. 暂停应用程序的执行 (Ctrl+Cmd+Y)。
  2. 在调试导航器的调用堆栈上选择“main” (Cmd+7)
  3. 在调试器中编写以下代码:

e UIApplication.shared.delegate?.window??.rootViewController?.present(viewController, animated: true),其中viewController 是您要呈现的 VC 实例。

  1. VC 将在您恢复执行后立即显示(另一个 Ctrl+Cmd+Y)。

【讨论】:

  • 如果您要显示的 VC 不在 WindowHierarchy 中会怎样?
【解决方案2】:

您可以使用https://github.com/facebook/chisel - 它向调试器添加了一些有用的命令,包括fvcpvc,它们允许您检查视图控制器。

【讨论】:

  • 哦,等等!您的意思是在应用程序中实际呈现一个 VC,而不仅仅是在调试器中打印它我不好 - 我将留下这个答案以防将来对某人有用,并为您的问题的实际答案添加一个单独的答案.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
相关资源
最近更新 更多