xcode调试技巧

2025-04-18 13:46:58

ios的系统开发工具xcode相信许多喜爱用苹果的工程师们都不陌生,这款开发工具在使用过程当中也有许多的小技巧可以供大家参考,下边我们就一起来看看!

工具/原料

苹果设备

NSLog

1、而在OC语言中,打Log是采用NSLog方法。但是NSLog效率低下,具体原因可以看这篇博磴涡湿蟾客(《NSLog效率低下的原因及尝试lldb断点打印Log》)。所以在平时的梯瓣氨割开发过程中,能不打Log就不打Log。实在想打Log网上也有对NSLog的一些优化方法,可以阅读王巍的《宏定义的黑魔法 - 宏菜鸟起飞手册》,另外在使用NSLog的时候应当注意,release版本中应该要去掉NSLog。

xcode调试技巧

LLDB

1、po:print object的缩写,表示显示对象的文本描述,如果对象不存在则打印nil。简单的打印一个对象我们就不说了,我们来说说特殊的应用场景吧!应用场景:你想知道一个视图包含了哪些子视图。当然你可以循环打印子视图,但是下面只需要一个命令即可解决。

xcode调试技巧

2、还有个常见的调试场痔辏哔刂景,比如你要打印一个model。你直接用NSLog或po对象处理的结果是model的地址,这并不是我们想要的。憾魄蜒祓怎么办?有没有解决方法呢?答案是有的。你可以重写model里面的description方法。但是,如果model里属性非常多,这样就不适用了。你不可能说在description方法里面拼接属性返回。这样不仅麻烦,而且可读性非常差。到这里,我们可以利用runtime动态获取属性并返回。不过我并不建议你重写description方法,我推荐你重写debugDescription方法,因为debugDescription方法和description方法效果一样,区别在于debugDescription方法是在你使用po命令时调用的,实际上也是调用了description方法。

3、p:可以用来打印基本数据类型。3、call:执行一段代码4、expr:动态执行指定表达式expr i = 101输出:(int)$0 = 1015、bt:打印当前线程堆栈信息如果要打印所以线程堆栈信息,使用:bt all即可。

xcode调试技巧

4、image:常用来寻找栈地址对应代码位置:

xcode调试技巧

断点(Breakpoint)

1、断点,程序员Debug必备技之一。1、条件断点打上断点之后,对断点进行编辑,设置相应过滤条件。下面简单的介绍一下条件设置:Condition:返回一个布尔值,当布尔值为真触发断点,一般里面我们可以写一个表达式。Ignore:忽略前N次断点,到N+1次再触发断点。

2、Action:断点触发事件,分为六种:AppleScript:执行脚本。Capture GPU Frame:用于OpenGL ES调试,捕获断点处GP炽扃仄呦U当前绘制帧。Debugger Command:和控制台中输入LLDB调试命令一致。Log Message:输出自定义格式信息至控制台。Shell Command:接收命令文件及相应参数列表,Shell Command是异步执行的,只有勾选“Wait until done”才会等待Shell命令执行完在执行调试。Sound:断点触发时播放声音。

xcode调试技巧

3、异常断点异常断点可以快速定位不满足特定条件的异常,比如常见的数组越界,这时候很难通过异常信息定位到错误所在位置。这个时候异常断点就可以发挥作用了。添加异常断点:

xcode调试技巧

4、编辑异常断点:Exception:可以选择抛出异常对象类型:OC或C++。Break:选择断点接收的抛出异常来源是Throw还是Catch语句。

xcode调试技巧

5、符号断点符号断点的创建方式和异常断点一样一样的,在符号断点中可以指定要中断执行的方法:举个例子,常见的场景,我想让它执行到ViewController类中的viewWillAppear方法就中断执行:

xcode调试技巧
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢