如何在Xcode中有效地调试块

时间:2013-04-05 18:18:22

标签: ios xcode

我真的很难在我们的大型ios项目上调试代码。似乎每个人都疯狂地放置块并在各处派遣队列。

当我被要求调试一大块代码时,我真的很想介绍它并观察事情的变化,看看变量究竟发生了什么。对于已经放入的所有块,我不能真正做到这一点有两个原因:

  1. 我必须在每个小块内放置一个断点才能在该块中停止。

  2. 在一个块中,没有块的变量不会以可用的方式显示,并且不能使用po命令轻松地转储到控制台。

  3. 是否有更简单或更好的方法来逐步执行/评估充斥着块的代码?或者我在这里遗漏了什么?

4 个答案:

答案 0 :(得分:3)

您是否在自动控制台转储中使用断点(不停止正在运行的应用程序)?

有一个非常好但非常有用的教程about intermediate debugging

快乐的编码!

答案 1 :(得分:1)

为什么不使用NSLog()在块中输出所需的变量?

答案 2 :(得分:1)

您可以使用以下方法在控制台中打印出对象:

示例:

po object.name
po object.age

另一种方法:在代码中加一个断点。当它在那时停止执行时,将鼠标悬停在它上面。

有关更详细的信息,请查看我对此问题的回答:How to inspect elements from NSArray and NSDictionary in xcode?

答案 3 :(得分:1)

你是对的,调试块有点麻烦。我尝试使用“自动转储断点”,但事实证明,它们维护起来很糟糕......

我最终基本上使用了NSLog。但NSLog()的问题是,您不希望在发布版本中记录所有日志。所以我建议使用像:

这样的工具

MWLogging

我认为这真的很棒。您可以在此博客文章中了解并记录此事:

iOS Development: You're Doing It Wrong

真的值得一读。