Сигнал 11, ошибка сегментации при выходе из приложения iphone
-
13-09-2019 - |
Вопрос
У меня есть приложение для iPhone.Кажется, все работает нормально.Когда я подключаюсь к подготовленному iphone к Xcode и запускаю приложение, журнал консоли в окне Органайзера всегда жалуется на ошибку сегментации при выходе из приложения с помощью клавиши home.
Кто-нибудь еще видел это, и есть ли у вас представление о том, в чем может заключаться проблема?Я использую поток для загрузки веб-страниц в фоновом режиме, но я останавливаю поток при выходе.
Мое приложение действительно сохраняет некоторую постоянную информацию.Когда я использую функцию build and analyze, я получаю около 2 потенциальных утечек памяти, но в каждом случае я выделяю объект и сохраняю его в массиве.
Есть идеи, или это нормально?
Решение
Попробуйте запустить свое приложение с помощью NSZombieEnabled.Это сообщит вам, закончился ли выпуск какого-либо объекта.Чтобы включить зомби, выполните следующие действия:
- Выберите Проект > Редактировать активный исполняемый файл, чтобы открыть окно Информация об исполняемом файле .
- Щелкните Аргументы.
- Нажмите кнопку добавить (+) в разделе “Переменные, которые будут установлены в среде”.
- Введите NSZombieEnabled в столбце Имя и YES в столбце Значение.
- Убедитесь, что установлен флажок для записи NSZombieEnabled.
Другие советы
При выходе ваше приложение может чрезмерно освободить объект, попробуйте удалить каждый объект перед его освобождением или выполнить некоторую отладку в методе dealloc.
Возможно, вы освобождаете какой-то объект больше раз, чем количество его сохранений.Прокомментировать -release
звонки в вашем dealloc
методами (или где-либо еще) до тех пор, пока вы не найдете виновника.
Затем раскомментируйте этот вызов и посмотрите в другом месте вашего кода, где вы пытаетесь повторно освободить этот объект.
Если вы используете удобные методы, например, (например [NSString stringWithFormat:@"..."]
) в отличие от alloc-init
методы (например, [[NSString alloc] initWithFormat:@"..."]
) результирующий объект удобства автоматически освобождается и не должен освобождаться вручную.
Моей проблемой были uididfaker и locationholic из cydia, и после их удаления xcode запускался на моем iphone просто отлично.