项目调试小技巧总结

965 阅读1分钟

设置启动参数

举例说明 可视化对齐矩形

在运行时用对齐矩形覆盖在视图上,在scheme中设置一个启动参数即可。在iOS中是UIViewShowAlignmentRects,在OSX中是UIViewShowAlignmentRects,将该参数的值设置为YES,并且用一个短划线做前缀,矩形就会显示在各个视图上。 设置方式:

显示效果:

注: 调出scheme的快捷方式command + shift + <

也可通过代码设置该选项

[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"UIViewShowAlignmentRects"];

AutoLayout扫描整个视图层次寻找问题

AutoLayout为iOS提供了一个未文档化的跟踪特性,可以扫描整个视图层次结构来寻找有歧义的布局问题。在主窗口(key window)上调用(其实他对层次结构上的任何视图都可用),报告完整的层次跟踪。

使用代码跟踪:

NSLog(@"%@", [[[UIApplication sharedApplication]keyWindow]performSelector:@selector(_autolayoutTrace)]);

在调试窗口中,使用

(lldb) po [[UIWindow keyWindow]_autolayoutTrace]

•UIWindow:0x13becf860
|   •UIView:0x13d98dc00
|   |   *_UILayoutGuide:0x13d99e990
|   |   |   _UIDebugAlignmentRectView:0x13bdbb910
|   |   *_UILayoutGuide:0x13da2a450
|   |   12:0x13da20cc0
|   |   |   _UIDebugAlignmentRectView:0x13bd51a40
|   |   _UIDebugAlignmentRectView:0x13bd70de0
|   _UIDebugAlignmentRectView:0x13bdb79c0

Legend:
	* - is laid out with auto layout
	+ - is laid out manually, but is represented in the layout engine because translatesAutoresizingMaskIntoConstraints = YES
	• - layout engine host

修改变量名称

快速修改当前范围内的变量名

  • 将光标移到变量名上
  • 使用 Cmd-Ctrl-E 按键选中
  • 直接修改就可以了

如果是全局变量,则全部修改;如果是局部变量,则只修改当前局部范围内的

使用正则表达式进行搜索

使用cmd-alt-ctrl-p 调出表达式的说明列表

持续更新

持续更新

持续更新