2010-10-20 71 views
0

我在我的參數中有NSZombieEnabled爲NO。NSZombieEnabled不會關閉

我檢查,看看是否已啓用:

if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")) 
    { 
     NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!"); 
    } 

我說,調試它仍處於啓用狀態。爲什麼?

回答

4

嘗試取消選中它。如果前面沒有複選標記,則不應將其傳遞給應用程序。

當您將該值設置爲NO時應該關閉,但getenv(「NSZombieEnabled」)將返回「NO」。這不是一個布爾否,而是一個cstring「NO」。因此,如果條件將是真的無論如何。

0

這裏有一個建議,它檢查env變量的存在和正確的值。

char* szZombie = getenv("NSZombieEnabled"); 
if (szZombie && 0 == strcasecmp(szZombie, "YES")) 
{ 
    NSLog(@"NSZombieEnabled enabled!");   
} 
1

我知道這個問題是舊的,但對人的參考,您可以使用此技術對於許多調試標誌:

extern BOOL NSZombieEnabled; 
if (NSZombieEnabled) 
    ... 

如果鏈接,它會奏效。