代码之家  ›  专栏  ›  技术社区  ›  HalR

如何使用Xcode中的块进行有效调试

  •  10
  • HalR  · 技术社区  · 12 年前

    我真的很难在我们的大型ios项目上调试代码。似乎每个人都疯狂地到处设置路障和调度队列。

    当我被要求调试一大块代码时,我真的很喜欢逐步完成它,观察事情是如何变化的,看看变量到底发生了什么。由于两个原因,我真的不能轻易地用所有的积木做到这一点:

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

    2. 在一个块中,不带块的变量不会以可用的方式显示,也无法使用po命令轻松地将其转储到控制台。

    有没有一种更简单或更好的方法来遍历/评估充斥着块的代码?还是我在这里错过了什么?

    4 回复  |  直到 12 年前
        1
  •  3
  •   Balazs Nemeth    8 年前

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

    有一个远非优秀但真正有用的教程 about intermediate debugging .

    编码快乐!

        2
  •  1
  •   AndrewShmig    12 年前

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

        3
  •  1
  •   Community CDub    7 年前

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

    例子:

    po object.name
    po object.age
    

    另一种方法是:在代码处设置断点。当它在该点停止执行时,将鼠标悬停在它上面。

    要了解更清晰的细节,请查看我对这个问题的回答: How to inspect elements from NSArray and NSDictionary in xcode?

        4
  •  1
  •   Tobi    12 年前

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

    我最终基本上使用了 NSLog 。但是 NSLog() 就是说,你不想在你的发布版本中记录所有这些。因此,我建议使用以下工具:

    MWLogging

    我觉得这真的很棒。你可以在这篇博客文章中阅读并登录:

    iOS Development: You're Doing It Wrong

    它真的很值得一读。