Мое приложение замерзает, но ошибки не появляется
Кто-нибудь знает, что мне нужно проверить, зависает ли мое приложение? Я имею в виду, я вижу приложение на экране iPad, но кнопки не реагируют. Я попытался отладить код, когда я нажимаю кнопку, но я еще ничего не видел. Я читал о инструментах Инструменты; как использовать их?
Может кто-нибудь мне помочь? Мне просто нужно объяснить, как использовать инструменты.
Ответы
Ответ 1
Похоже, что вы каким-то образом заблокировали основной поток. Чтобы отладить, запустите приложение в отладчике и, когда приложение замерзает, нажмите кнопку паузы над областью журнала внизу Xcode. Затем с левой стороны вы сможете точно определить, что делает каждый поток, и вы можете увидеть, где он застревает.
![кнопка паузы]()
Возможно, либо длинный цикл в основном потоке, либо блокировка синхронизации.
Ответ 2
Верный ответ правильный. Вы можете отладить это с помощью опции "Пауза". Наиболее распространенным способом блокирования основного потока является вызов dispatch_sync
в том же потоке, который вы отправляете. Иногда вы вызываете тот же код из dispatch_once
.
Ответ 3
Помимо приостановки и последующей работы с stacktrace, я считаю, что это дополнительная вещь, чтобы проверить код, если какой-либо цикл, вызывающий зависание приложения.
Недавно я столкнулся с подобной проблемой, но трассировка стека не помогла, я понял, что у меня есть вечный цикл при вызове метода reloadData()
внутри метода layoutsubviews, который вызывает зависание без ошибок и нет помощь от инструментов.