предупреждение: check_safe_call: не удалось восстановить текущий кадр - PullRequest
2 голосов
/ 19 февраля 2010

Что обычно означает ошибка warning: check_safe_call: could not restore current frame?Я читал в других местах, что это проблема с памятью.Это всегда проблема с памятью?

Я получаю эту ошибку на устройстве (не на симуляторе).NSZombieEnabled ничего не показывает.Если я Build and Debug, мое окно отладчика ничего не показывает.Пиковая память не так высока (3 МБ).Он просто вылетает с одной и той же ошибкой каждый раз после прокрутки карты.

Есть идеи, как это отладить?Спасибо.

Редактировать: Я добавил причину сбоя в ответе ниже (создание слишком большого количества соединений SQLite)Если кто-то еще получит эту ошибку и найдет свое решение, пожалуйста, опубликуйте ее ниже.Похоже, сообщение об ошибке с несколькими причинами.

Ответы [ 4 ]

4 голосов
/ 19 февраля 2010

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

Как я уже говорил, обычно, когда я видел это, это происходило из-за бесконечных циклов или рекурсии, и отладчик будет показывать свыше 5000 обращений к одной и той же функции, поэтому найти проблему не должно быть слишком сложно - но что, это не может быть точной проблемой.

Только мои два цента.

1 голос
/ 19 января 2012

Это предупреждение также может произойти, если использовать основанный на стеке блок вне области действия определенного блока, не копируя его.

0 голосов
/ 24 февраля 2010

Я нашел ошибку в своем коде. Оказывается, что база данных SQLite, которую я использовал, вызывала сбой. Я забыл закрыть соединение с базой данных, и каждый раз, когда код попадал в определенную функцию, я открывал новое соединение. В конце концов их стало слишком много, и приложение упало.

Похоже, что многие из этих ошибок связаны с некоторой перегрузкой (как говорит Jasarien).

0 голосов
/ 24 февраля 2010

Я тоже столкнулся с этой проблемой, но обнаружил, что она вызвана слишком высоким разрешением изображения. Это будет отлично работать в симуляторе, но не на устройстве. Я изменил размер изображения до 320x480 пикселей при 180 пикселях на дюйм, и теперь оно отлично работает.

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...