+4  A: 

Are you sure you're setting it in the right place? I mean, it is a runtime tuneable, not compile time. Just be sure you're setting it in the right place and try again.

Go to Project -> Edit Active Executable
Click Arguments
Click + in the "Variables to be set in the environment" section
Enter NSZombieEnabled in the Name column and YES in the Value column.
Make sure the checkmark for the NSZombieEnabled entry is checked.

jer
+5  A: 

You need to launch the Instruments application with the Zombies instrument from outside of XCode

This is how you can do it:

The Instruments application is usually located inside /Developer/Applications/, but you can also use Spotlight to find it.

When Instruments starts you should be presented with a screen that asks you to choose a template for the new Trace Document.

Select: iPhone Simulator > Memory > Zombies

Next you need to choose a target.

Go to: Chose target > Chose target > Chose target...

Now you need to select the application file:
<Path to your iPhone project>/build/Debug-iphonesimulator/<Application name>
and press Chose.

Now you are all set.

To launch you application press the Record button.

A few Side Notes:

  • I used XCode 3.2.3 on Mac OS X 10.6.3, but I believe it works the same on previous versions.
  • The Zombies instrument only works with the simulator.
  • The Zombies instrument cannot be used with the Leaks instrument because all the zombies would appear as leaks.
  • I would also like to know why the menu in XCode is grayed out.
Florin