Одна вещь, которую я узнал в прошлые выходные, когда NSZombieEnabled, похоже, не работал вообще - убедитесь, что вы не передаете не-объект в некоторый код.
В моем случае я возвращал NSString как просто "string" вместо @ "string". Это означало, что я перезаписывал объект NSString c-строкой. Когда я позже попытался написать новое значение в этом объекте, я получил BAD_ACCESS. NSZombie's не мог помочь, потому что это был не объект, который я пытался перезаписать, а эта c-строка.
В качестве отступления, обработайте все предупреждения как ошибки в XCode - хотелось бы, чтобы они отображались в RED в графическом интерфейсе IDE - иногда их легко пропустить.