当我在某个时刻在模拟器中运行我的应用程序时,UI变得完全没有响应(表格视图不滚动,按钮没有反应等)。
我知道通常这是锁定主线程(负责处理UI)的结果,但是所有繁重的负载都是异步发生的(据我所知)。
我查看了CPU表,所有线程似乎都是0%。奇怪的是,如果我尝试使用乐器进行配置,那么UI就不会被锁定。我也没有发现任何奇怪的乐器,CPU使用率似乎正常/低,时间分析器似乎没有显示任何奇怪的行为。
我的一般问题是:即使CPU负载为0,UI会变得无响应的原因还有哪些?调试此类事情的最佳方法是什么?
更具体地说:对于这个特定问题,应用程序的详细信息可能过于复杂,但仅适用于某些情况:
我最好的猜测是主线程上某处发生了死锁,这就是为什么CPU负载报告0%但UI仍无响应的原因。我不知道如何调试它。这可能是CoreData领域的深处,也可能是第三方AF类之一。我在这个地方洒了断点,没有一个被击中。
我现在已经摸不着头几个小时了。在没有详细了解我的特定应用程序的实现的情况下,我希望得到一些针对此类问题的一般调试技巧。还有什么我应该尝试的吗?
我正在运行XCode 5.0.2,模拟器在iOS 7.0.3上(为了它的价值)。
任何提示&非常感谢技巧!