我的iOS应用程序冻结但没有出现错误

是否有任何机构知道我需要检查应用程序是否会在一段时间后冻结? 我的意思是,我可以在iPhone屏幕上看到该应用程序,但没有视图响应。

我做了一些谷歌,我发现,我已经以某种方式阻止了主线程。

但我的问题是如何识别哪个方法导致主线程阻塞? 有什么办法可以识别吗?

通常,强烈建议在主线程上执行所有动画方法和界面操作,并在后台执行任务,例如从服务器下载数据等…

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //here everything you want to perform in background dispatch_async(dispatch_get_main_queue(), ^{ //call back to main queue to update user interface }); }); 

资料来源: http : //www.raywenderlich.com/31166/25-ios-app-performance-tips-tricks

启动您的应用并等待它冻结。 然后按Xcode中的“暂停”按钮。 左侧窗格应显示当前正在运行的方法。

设置冻结发生的断点,并找出导致该断点的行。

可能是,加载大数据,禁用控件,主线程重载,只需找出使用断点发生的位置并根据它进行纠正。