Xcode:一个改变你生活的奇怪调试技巧

本文翻译自Xcode: One Weird Debugging Trick That Will Save Your Life

参考Advanced Debugging in Xcode and Swift

希望你可以从题目看出我对于这个题目有多开心。不管怎样,让我们回到定期计划编程中…

在过去的几天里,我一直在早餐时看这个高级调试和地址消毒剂。里面有个超级酷的调试技巧我希望能够写下来并记住它,从而能够使用它。

奔溃

写这篇博文的一个有趣的地方是,我随机打开一个已有的测试工程,并让它在下面一个我们都死掉的恐怖地方奔溃:

技巧

为了看到真实的情况,在你项目的线程中点击 objc_exception_throw 来获取下面的信息:

是的,我发现这些信息都很难懂,但恰恰这就是有趣的地方。在下方的控制台区域输入 po $arg1 命令,来获取人类可读的错误信息版本(这里的情况是 这个 nib 不正确)

好的,这个错误很容易修复

一个更高级的技巧

最后,你可以在项目的 异常断点上添加这个 po $arg1 命令,来这个输出自动话:

祝调试快乐!!

补充

如果你想在异常断点发生时还输出程序的调用堆栈,可以再添加一个命令:

那么输出将是如下:

如果你想在本地所有工程中使用上面的这些技巧,可以右键这个异常断点,并选择 Move breakpoint to => user 就可以了:

最近的文章

Swift:Xcode 7 Beta3 中新增的东西

本文翻译自Swift: New stuff in Xcode 7 Beta 3在今天苹果推送的最新beta 版中,下面新增的内容是最让我兴奋的。默认枚举命名在最新的 beta 3 版本中,String 类型的枚举如果没有显示赋值,则默认值为该枚举对应的名字。我非常喜欢这个巨大的改进,也是beta 3 中非常大的一个功能。让我们来看一下吧:Explicit Label Exclusion.你是否曾经搞混函数中的参数和元组?现在再也不用担心这个问题了。未命名的参数现在要求显示加上 _ 符号...…

iOS继续阅读
更早的文章

在iOS8 下用Swift 创建自定义的键盘

本文翻译自How to make a custom keyboard in iOS 8 using Swift我将讲解一些关于键盘扩展的基本知识,然后使用iOS 8 提供的新应用扩展API来创建一个莫斯码键盘。大概需要你花20多分钟来走完所有的步骤。 完整代码综述一个自定义的键盘会替换系统的键盘,来提供给用户一个新的文本输入方法,或者输入哪些iOS系统还不支持的语言。一个自定义键盘的基本功能很简单:响应点击,手势或者其它输入事件以及在当前的文本输入对象的文本插入点上提供非属性化的NSS...…

iOS继续阅读