5个Xcode断点提示

Xcode断点使我们能够调试和查找令人讨厌的错误的解决方案

没有断点,在代码中到处都有很多打印语句。我们可能都知道断点的基本原理,但还是有更多发现!


Xcode中的断点是什么?

可以将断点放置在特定的代码行中,并在执行过程中暂停应用程序以检查该点的状态。可以在应用程序运行之前和运行期间的任何时间设置断点。

可以在断点导航器中找到概述,其中显示了所有激活和禁用的断点。调试栏包含一个断点激活按钮,用于临时禁用断点以免暂停您的应用程序。


Xcode中的蓝色断点激活按钮


1.用户定义的断点

对于创建的每个新Xcode项目,您可能要做的几件事之一就是添加方便的断点,以帮助您调试许多错误。这是一个多余的过程,可以通过Xcode中的用户定义断点来解决。


在Xcode中移动断点

移动断点后,它将显示在其自己的部分中,其中包含所有用户定义的断点。


Xcode中的用户断点概述

这将使您在所有打开的Xcode项目中都可以使用断点。这包括您创建的项目以及从Internet下载的项目。任何项目!


2.通过Git共享断点

有时,您发现自己正在查看同事的工作流程,并且意识到他有一些出色且有用的断点。

您可以让他通过Git共享这些断点,而不必询问他有关设置相同断点的指示。


通过Xcode中的Git共享断点

这会将断点移动到带有共享断点的自己的部分。这使获得所有共享断点的概述非常容易。


断点导航器中的共享断点概述

断点是共享的,保持断点的存在也是共同的责任。

因此,如果您的一位同事决定删除该断点,则一旦您从Git中获取最新更改,该断点也将从您的断点列表中删除。


3.使用调试器命令操作的异常断点

我使用多年的用户定义断点之一是异常断点。

当引发或捕获特定类型的异常时,将触发异常断点。每当遇到异常断点时,我都会po $arg1在单击后立即键入该语句objc_exception_throw以获取有关引发的异常的更多信息:


在抛出异常时打印出更多信息

使用断点中定义的操作,可以很容易地将其自动化。遇到断点时,将执行所有已定义的操作,这可能是调试应用程序的宝贵方法。


在异常断点中输出参数

当然,现在您将直接将其设为用户定义的断点,因此您不必在每次创建新的Xcode项目时都创建一个断点!


4.符号断点

在调试过程中,通常会通过控制台中的消息告诉我们创建符号断点的过程。自动布局相关的符号断点可能是最著名的一个:

// Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600000d7aad0 UIView:0x7fbe55e95420.leading == UILabel:0x7fbe55e95d20.leading + 8   (active)>

// Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

当调用特定的方法或函数时,将触发符号断点。可以从断点导航器中添加它们:

image.png

添加符号断点

您在断点中填充关键字,只要调用该符号,它将暂停您的应用程序以开始调试。


为UIViewAlertForUnsatisfiableConstraints添加符号断点

在这种特定情况下,它使您可以快速导航到激活了无法满足的约束的代码。漂亮整齐!

但这不是约束错误断点吗?

足够令人惊讶的是,这些错误没有触发约束错误断点。根据Apple论坛上的该帖子,此断点仅适用于AppKit

有用的符号断点,用于集合视图布局调试

如上所述创建一个断点,但是使用UICollectionViewFlowLayoutBreakForInvalidSizes符号可以调试集合视图流布局中的任何布局问题。

尽管调试这类问题仍然不容易,但这至少会为您指明正确的方向,并为您提供调试的起点。


5.用测试失败断点捕获失败的测试

当测试失败时,您通常会开始浏览测试列表以查找失败的测试。尽管这是可行的,但是如果您在流程中,效率并不是很高。

为此,我们具有测试失败断点,该断点将直接跳至测试中的失败断言,从而使您可以直接开始修复失败的测试。


添加测试失败断点


结论

而已!更好地使用断点的五个技巧。这是加快调试工作流程的好方法。

翻译自:https://medium.com/better-programming/5-xcode-breakpoints-tips-you-might-not-yet-know-13ed4976ce3e

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容