是否有任何机构知道我需要检查应用程序是否会在一段时间后冻结?我的意思是,我可以在iPhone屏幕上看到该应用程序,但没有视图响应.
我做了一些谷歌,我发现,我已经以某种方式阻止了主线程.
但我的问题是如何识别哪个方法导致主线程阻塞?有什么办法可以识别吗?
启动您的应用并等待它冻结.然后按Xcode中的"暂停"按钮.左侧窗格应显示当前正在运行的方法.
通常,强烈建议在主线程上执行所有动画方法和界面操作,并放入后台任务,如从服务器下载数据等...
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