Приложение iOS вылетает на устройстве без информации о сбое - PullRequest
1 голос
/ 28 сентября 2011

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

Есть незначительные утечки памяти при каждом выполнении, но использование памяти довольно низкое (как показано в Распределениях и Утечках). Я сократил код, но проблема остается.

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

Есть предложения?

Ответы [ 2 ]

1 голос
/ 31 июля 2012

OpenGL может вызвать неясные сбои.

В моем коде OpenGL был цикл сохранения.

Это произошло в моем пользовательском UIView, где у меня было GLKView подпредставление. Это подпредставление никогда не выйдет, что приведет к краху. Решение было использовать weak вместо strong.

@property (strong, nonatomic) GLKView* glkView;   // Crash, no crash report, no errors
@property (weak,   nonatomic) GLKView* glkView;   // this works

В журнале не было ошибок. Нет отчета о сбое. У меня есть исключения, позволившие разбить на бросок, но исключений не было. Я везде вставил NSLog, но ничего полезного не обнаружил. У меня были включены зомби, но я не заметил ничего необычного.

1 голос
/ 28 сентября 2011

Поиск утечек памяти обсуждается здесь - Инструменты обнаружения утечек памяти в Xcode .

Утечки памяти может быть трудно найти, так как они могут вызвать непредсказуемые эффекты.Используйте инструмент Leak в xcode и просмотрите ваш код.Возможно, стоит взглянуть на руководство по программированию управления памятью, так как вы можете что-то выпускать, когда этого не следует (или наоборот).Возможно, проблема не в том, где вы думаете.

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

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