有沒有任何機構知道我需要檢查一段時間後應用程序是否凍結?我的意思是,我可以在iPhone屏幕上看到該應用程序,但沒有視圖響應。我的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
也許描述更多你的應用程序正在做什麼,顯示一些你正在執行的代碼,當你凍結 –