我在我的论点中有NSZombieEnabled to NO。
我正在检查它是否已启用:
if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled"))
{
NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
}我的调试器说它仍然处于启用状态。为什么?
发布于 2010-10-20 19:20:18
尝试取消选中它。如果前面没有复选标记,则不应将其传递给应用程序。
设置为NO时应该关闭,但getenv("NSZombieEnabled")会返回NO。它不是布尔值NO,而是cstring "NO“。所以if条件无论如何都是真的。
发布于 2011-09-23 04:27:50
我知道这个问题很老了,但供人们参考,您可以将此技术用于许多调试标志:
extern BOOL NSZombieEnabled;
if (NSZombieEnabled)
...如果它链接了,它就会工作。
发布于 2011-08-12 05:14:19
这里有一个建议,它同时检查env变量的存在和正确的值。
char* szZombie = getenv("NSZombieEnabled");
if (szZombie && 0 == strcasecmp(szZombie, "YES"))
{
NSLog(@"NSZombieEnabled enabled!");
}https://stackoverflow.com/questions/3977176
复制相似问题