Основной причиной EXEC_BAD_ACCESS является попытка доступа к перевыпущенным объектам.
Чтобы узнать, как решить эту проблему, прочитайте этот документ: DebuggingAutoReleasePool
Даже если вы не думаете, что «выпускаете автоматически выпущенные объекты», это относится к вам.
Этот метод работает очень хорошо. Я использую это все время с большим успехом !!
Таким образом, это объясняет, как использовать класс отладки NSZombie Какао и инструмент командной строки «malloc_history», чтобы точно определить, к какому освобожденному объекту обращались в вашем коде.
Sidenote:
Запуск инструментов и проверка на утечки не помогут устранить неполадки EXEC_BAD_ACCESS. Утечки памяти не имеют ничего общего с EXEC_BAD_ACCESS. Определение утечки - это объект, к которому у вас больше нет доступа, и поэтому вы не можете вызвать его (и не можете перевыпустить его).