今年的WWDC介绍了不少新的调试方法,可以更加快捷便利的定位问题、分析问题、解决问题,下面就简单介绍一下。
循环布局检测
当你进入某个界面或点击某个按钮后,发现屏幕不再响应事件,然后进入无限等待,debug下可以看到CPU满负荷,RAM也不断增加,那么有可能就进入了循环布局状态。
举个栗子
先说一个简单的循环布局的case,如下图所示。
最底下的subview A在layout时更新superview B的bounds
,B因为不在layout状态,所以会使superview B调用其superview C的setNeedsLayout()
方法,然后进入layout状态,此时C重置B的bounds
,B又使A再次layout。因为对B的bounds
设置不一致,导致循环下去。