как решить ошибку EXC_BAD_ACCESS в моем приложении? - PullRequest
6 голосов
/ 13 января 2011

Я загружаю пользовательскую ячейку в tableView и возвращаю 50 строк в tableView.количество некоторых строк отображается в табличном представлении, но при прокрутке табличного представления моя пользовательская ячейка не отображается, и у меня появляется ошибка

"EXC_BAD_ACCESS"

, а также отображается следующее сообщениена консоли

"void SendDelegateMessage (NSInvocation *): делегату (webViewDidLayout :) не удалось вернуться после ожидания 10 секунд. Режим основного цикла выполнения: UITrackingRunLoopMode"

Ответы [ 4 ]

3 голосов
/ 18 января 2011

Я думаю, что вы получаете эту ошибку из-за вашего метода создания пользовательских ячеек. Когда вы создали файл класса для пользовательской ячейки в файле .m, вы выпустили IBOutlets. Попробуйте удалить эту часть из своего кода, чем пытаться.

У меня была такая же проблема в приложении, и я решил эту проблему таким образом. Может быть, это решение будет работать и для вас.

2 голосов
/ 13 января 2011

Лучший способ обнаружить зомби:

  1. в разделе Группы и файлы , разверните раздел Исполняемые файлы и щелкните правой кнопкой мыши на имени вашего приложения и выберите Получить информацию
  2. выберите вкладку Аргументы в верхней части, а затем добавьте новую запись в Переменные для установки в разделе среды. Назовите новую переменную NSZombieEnabled и установите для нее значение ДА .

После этого у вас будет информация в консоли о том, с какими выпущенными объектами вы звоните.

1 голос
/ 13 января 2011

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

Есливы работаете в режиме отладки, трассировка стека, вероятно, даст вам больше подсказок.Откройте консоль отладки.

0 голосов
/ 13 января 2011

Вы также должны использовать NSZombieEnabled , это обычно помогает.Он показывает, к какому освобожденному объекту обращались.Обязательно отключите его после его использования, потому что при его использовании память никогда не освобождается.

...