I want to enable NSZombies for my iPhone app.
I have read several articles online and I am still unsure of the exact procedure.
I know I have to set the Environment Variables, which I have done:
NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO
I think (I'm not sure), I have to import NSDebug.h. When I check the headers of the Foundation Framework in my project, there is no NSDebug.h.
After some research, I found them in the iPhoneSimulator Foundation Framework. So (and I'm not sure if this is correct), I imported the iPhoneSimualtor Foundation Framework into my project. I noticed that the file STILL does not show up in the project window, even though I can locate it in the Finder.(Is this normal behavior?).
So I opened up main and added:
#ifdef TARGET_IPHONE_SIMULATOR
#import <Foundation/NSDebug.h>
#endif
I am not sure if that is right either. After this I still can't get the NSZombie to work (unless I have misunderstood what it is supposed to do) I am expecting to see a log of " NSZombie sent a release... " or something. But I don't see anything
I'm sure I'm just not doing this right, a good step by step would be appreciated. Thanks
Also of note, I have also enabled:
NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES
You need to open the Product menu in the Xcode, select Edit scheme and then choose the Diagnostics tab. There you have "Enable Zombie Objects".
A global variable related to zombie objects that in practice has no effect.
Are you setting the environment variable correctly? The step by step guide is
You don't need to #import NSDebug.h
You don't have to include NSDebug.h or import any special frameworks to use NSZombies. Basically, turn 'em on in your environment variables, and then, if you attempt to message a dealloc'd object, THEN you'll see something in your console, along the lines of:
2009-02-10 21:17:08.546 MyApp[16926:20b] *** -[CFString _cfTypeID]: message sent to deallocated instance 0x4babc0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With