Основной причиной EXEC_BAD_ACCESS является попытка доступа к объектам релиза.
Чтобы узнать, как решить эту проблему, прочитайте этот документ: DebuggingAutoReleasePool
Даже если вы не думаете, что «выпускаете автоматически выпущенные объекты», это относится к вам.
Этот метод работает очень хорошо.
Таким образом, это объясняет, как использовать класс отладки NSZombie Cocoa и инструмент командной строки «malloc_history», чтобы точно определить, к какому освобожденному объекту был получен доступ в вашем коде.
Полезно установить точку останова на objc_exception_throw. Таким образом, отладчик должен выйти из строя, когда вы получите EXC_BAD_ACCESS.
Инструкции можно найти здесь http://www.cocoadev.com/index.pl?DebuggingTechniques