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

Kru*_*nal 4 iphone multithreading freeze ipad ios

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

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

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

Sim*_*mon 22

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

  • 这是此类“无错误”崩溃/锁定的最佳解决方案。 (4认同)

zbM*_*Max 5

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

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
    });
});
Run Code Online (Sandbox Code Playgroud)

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