Сигнал 11, ошибка сегментации при выходе из приложения iphone - PullRequest
5 голосов
/ 05 декабря 2009

У меня есть приложение для iPhone. Кажется, работает нормально. Когда я подключаюсь к подготовленному iphone к Xcode и запускаю приложение, журнал консоли в окне «Органайзер» всегда жалуется на ошибку сегментации при выходе из приложения с помощью ключа home.

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

Мое приложение сохраняет некоторую постоянную информацию. Когда я использую функцию построения и анализа, я получаю 2 возможных утечки памяти, но в каждом случае я выделяю объект и сохраняю его в массиве.

Есть идеи или это нормально?

Ответы [ 4 ]

7 голосов
/ 05 декабря 2009

Попробуйте запустить ваше приложение с NSZombieEnabled. Это скажет вам, если вы перестали выпускать какой-либо объект. Чтобы включить зомби, сделайте следующее:

  1. Выберите «Проект»> «Редактировать активный исполняемый файл», чтобы открыть исполняемую информацию. окно.
  2. Нажмите Аргументы.
  3. Нажмите кнопку добавления (+) в разделе «Переменные, которые нужно установить в окружающая среда ».
  4. Введите NSZombieEnabled в столбце Имя и YES в столбце Значение.
  5. Убедитесь, что установлен флажок для записи NSZombieEnabled.
0 голосов
/ 25 сентября 2012

У меня были проблемы с uididfaker и locationholic от cydia, и после их удаления xcode работал на моем iphone просто отлично.

0 голосов
/ 05 декабря 2009

Возможно, вы выпускаете какой-то объект больше раз, чем его счет. Закомментируйте -release вызовы в ваших dealloc методах (или в других местах), пока не найдете преступника.

Затем раскомментируйте этот вызов и посмотрите в другом месте кода, где вы пытаетесь перевыпустить этот объект.

Если вы используете вспомогательные методы, например (например, [NSString stringWithFormat:@"..."]), в отличие от alloc-init методов (например, [[NSString alloc] initWithFormat:@"..."]), результирующий вспомогательный объект автоматически освобождается и не должен выпускаться вручную.

0 голосов
/ 05 декабря 2009

При выходе ваше приложение может перевыпустить объект, попробуйте сбросить каждый объект перед его освобождением или выполнить некоторую отладку в методе dealloc.

...