我的iOS应用程序冻结,但没有出现错误
问题描述:
有没有任何机构知道我需要检查一段时间后应用程序是否冻结?我的意思是,我可以在iPhone屏幕上看到该应用程序,但没有视图响应。我的iOS应用程序冻结,但没有出现错误
我做了一些谷歌,我发现,我已经阻止了主线程莫名其妙。
但我的问题是如何确定哪个方法导致主线程阻塞?有什么方法可以识别?
答
一般来说,强烈建议在主线程中的所有动画方法和接口操纵执行,并把像从你的服务器等下载数据的后台任务...
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
答
从发生冻结的地方设置一个断点并找出哪条线路导致该断点。
机会可能是,加载大量数据,禁用控件,主线程中的超载,只需找出使用断点发生的位置并根据该错误纠正。
在主线程上运行你的进程... – IronManGill
我的项目中有很多进程在后台线程上运行,如下载图像,活动指示器动画,加载tableview等等,我应该在main线程? – Krunal
也许描述更多你的应用程序正在做什么,显示一些你正在执行的代码,当你冻结 –