When running into EXC_BAD_ACCESS errors during iPhone development, enabling NSZombieEnabled can easily debug access error.


EXC_BAD_ACCESS error is a general error in your iOS application, but is hard to debug and find the route cause for this error in your application.The main reason of EXC_BAD_ACCESS error to happen is that – somewhere in your application code you are trying to send a message to an object that has already been released.

 

So how we will find the root cause of this error? For this you need to set NSZombieEnabled environment variable with your application. Adding this environment variable will tell you, because of which variable this error happens.

To set this variable in your project follow following steps:

1. Open your project with Xcode.
2. Go to Project Menu >> Scheme >> Then select Edit Scheme option.

Capture1

3. In Edit Scheme popup go to Arguments tab and create a new environment variable by clicking the plus sign in the lower left corner.

Capture2

4.  Write NSZombieEnabled in Name field and set value YES.

Capture3

5. Now run your application. Now when the released variable is accessed, you will get an error message, which will, shows class of the object and the message that has been sent to the object.

6. Once you have fixed your error make sure that the NSZombieEnabled variable is disabled.

7. To disable this variable simply uncheck the checkbox.

Capture4