Вопрос по ios – Мое приложение зависает, но не появляется ошибка

28

Кто-нибудь знает, что я должен проверить, если мое приложение зависает? Я имею в виду, я вижу приложение на экране iPad, но никакие кнопки не реагируют. Я пытался отладить код, когда нажимал на кнопку, но пока ничего не видел. Я читал об инструментах инструментов; в частности, как их использовать?

Кто-нибудь может мне помочь? Мне просто нужно объяснение о том, как использовать инструменты.

Делайте точно так, как предлагает Бен Барон. Посмотрите на левый слайд Xcode после паузы и определите функции / потоки, которые могут блокировать пользовательский интерфейс. Закомментируйте каждую функцию за раз и перезапустите проект. После этого вы сможете определить причину зависания приложения. Ahmed Khedr
Пожалуйста, как решить эту проблему. Можете ли вы дать какие-либо подсказки. Ranjith Kumar

Ваш Ответ

4   ответа
0

Паузы & quot; вариант. Самый распространенный способ заблокировать основной поток - это вызватьdispatch_sync на той же ветке вы отправляете. Иногда вы вызываете тот же код изdispatch_once.

80

вы как-то заблокировали основной поток. Для отладки запустите приложение в отладчике, а когда приложение зависнет, нажмите кнопку паузы над областью журнала в нижней части XCode. Затем с левой стороны вы сможете точно видеть, что делает каждый поток, и вы можете видеть, где он застревает.

pause button

Вероятно, либо длинный цикл в главном потоке, либо тупик синхронизации.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Vanjo
Error: User Rate Limit Exceeded Vanjo
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded||Error: User Rate Limit Exceeded
1

я думаю, что в качестве дополнительной вещи нужно проверить код, есть ли какой-либо цикл, вызывающий зависание приложения.

Недавно я столкнулся с подобной проблемой, но трассировка стека не очень помогла, я понял, что у меня был вечный цикл при вызовеreloadData() в методе layoutsubviews, и это вызывало зависание без ошибок и без помощи инструментов.

0

и причиной стал другой разработчик, который добавилsetNeedsLayout() внутри методlayoutSubviews() и это делает бесконечный цикл и замораживает приложение.

Похожие вопросы