Xcode中的3个基本调试工具

Xcode是一个功能强大的IDE,它提供了各种各样的调试工具。 尽管许多工具很容易发现和使用,但我注意到许多iOS开发人员并不知道Xcode隐藏的高级功能(但必不可少)的调试功能是否存在。 我决定为Xcode编写一份简短的调试技巧清单,它表示大多数情况下用于调试代码的工具。 我与他们分享是希望发现这些隐藏的宝石后能提高您的生产率。

1.查看层次结构调试器

我很惊讶地看到一些经验丰富的iOS工程师不知道此功能的存在。 通常,通过以编程方式更改屏幕上所有视图的背景颜色来调试视图层次结构,以便观察发生的情况。 如果您知道“ Debug View Hierarchy”按钮,该按钮隐藏在Debug Area栏中(“恢复/暂停”调试按钮旁边),则您会觉得效率很低。

此功能使您可以在称为视图层次结构调试器的3D渲染中研究视图对象的关系 。 您可以很好地看到布局树,您可以在其中立即注意到UI是否有问题。

在设置付费工具(例如Reveal App)之前,请尝试使用此功能。 Xcode内置的视图层次结构调试器功能非常强大,通常是调试视图层次结构所需的所有工具。

在为我为iOS App模板创建的通用集合视图控制器上工作时,此工具在调试流畅的布局类方面非常了不起,该类允许集合视图单元具有灵活(不相等)的宽度和高度。

另一个提示-我喜欢使用此工具来查找特定屏幕/组件的代码在哪里,因为您可以识别轻松备份用户界面的类的名称。 在不熟悉的代码库中非常方便。

2.丰富的断点

如果您是iOS的新手,则可能只使用了简单的断点,即可在调试期间闯入所需的任何方法,以观察当前的运行时上下文(变量,状态,对象关系等)。 您可以通过简单地单击特定代码行的左侧栏来设置断点,并且只要该行正在运行,Xcode就会暂停程序的执行。

许多iOS开发人员不知道的是,断点甚至比常规用例还要聪明。 实际上,它们令人印象深刻。 您可以使用以下一些实用技巧:

  • 条件断点 -仅当给定条件为true时,断点才会命中。 这对于调试列表(例如)非常有用,例如,您只在乎第N个单元格中发生的事情,并希望跳过暂停每个上一个列表项的执行。
  • 忽略 —您可以在断点处忽略固定次数的暂停。 这在许多情况下都派上用场,包括上述情况。
  • 动作断点 -遇到断点时 ,您可以告诉Xcode执行特定的动作。 这些动作可以是记录消息,运行调试器命令(例如“ po”)甚至运行Shell脚本。 断点激活时,此处的一个非常有趣的功能是播放声音。 在处理经常调用的方法(例如layoutSubviews )中的断点时,这样可以节省大量调试时间。

要使用所有这些功能,可以在断点上单击鼠标右键,然后选择“ 编辑断点 ”。

3.异常断点

调试异常时,这是救生员。 您可以仅添加此通用Xcode断点,而不是手动查找导致异常的代码,该断点将在引发异常之前暂停执行。 这样,您可以调查引发异常时的确切上下文,几乎可以在几秒钟内准确显示出错误所在。 在调试不熟悉的代码时非常有帮助。

要设置此断点,请转到断点导航器( Command + 8 ),单击底部的“ +”号,然后选择“异常断点”。 您还可以编辑此断点以使其更丰富,因为它支持上一节中概述的所有功能。

在同一菜单中,您可以找到更多的通用断点集,例如测试失败断点 (在测试失败前暂停执行), 快速错误断点符号断点等。我们将其作为练习读者,因为它们并不经常使用(至少不是我所不喜欢的)。

我希望这是有用的,并且您通过阅读本文了解了一些新知识。 请随时分享评论中的其他提示。 我期待了解人们发现其他便捷有效的Xcode调试工具。

查看更多在Xcode中调试iOS代码的提示和技巧!