2015-10-01 118 views
2

你好我正在做這樣的事情。iOS中的對象返回空描述

NSString * fblink=[dm.commonDataArray valueForKey:@"fb_link"]; 

if(![fblink isEqual:[NSNull null]]||![fblink isEqualToString:@""]||![fblink length]<=0) 
{ 
    [fb_button setImage:[UIImage imageNamed:@"ico_user_fb"] forState:UIControlStateNormal]; 
    [fb_button addTarget:self 
        action:@selector(buttonFBTouch:) 
     forControlEvents:UIControlEventTouchUpInside]; 
}else{ 
    [fb_button setImage:[UIImage imageNamed:@"ico_fb_red_gray"] forState:UIControlStateNormal]; 
} 

,當我輸入我的日誌fblink它說(lldb) po fblink <object returned empty description>但是還是我的,如果條件成爲真正的和裏面去ratherthan去別的部分。

我該如何克服這個問題?我不想執行我的條件真正的部分,如果它返回空描述。我如何檢查這種情況?請幫我 謝謝

+1

我認爲你必須使用&&代替|| 。 –

回答

2

問題在於您是否有條件。 fblinknil,您正在檢查零等於[NSNull null]所以這種情況下失敗,你倒置結果,所以它變成真實的,並進入這個如果情況。

如果我們擴大你的,如果情況變得:

if(![nil isEqual:[NSNull null]]||![nil isEqualToString:@""]||![nil length]<=0) 
{ 
} 

這成爲

if(!false||!false||!true) // which evaluates to true, you are using ||, so if any one condition is true, it will go inside of the if case 
{ 
} 

你需要改變,如果情況:

if([fblink isKindOfClass:[NSString class]] && ![fblink length]<=0) 
{ 
} 
else 
{ 
} 
+0

非常感謝你這清楚地解釋了我的問題 – user1960169

+0

@ user1960169:不客氣。快樂編碼! –

1

我認爲fblink不是null但它是一個空字符串。因此你的![fblink isEqual:[NSNull null]]正在成爲現實,你的if statement正在執行。請只檢查以下條件:

if(![fblink isEqualToString:@""]||![fblink length]=0) 
1

你必須改變|| (或)條件爲& &(和)條件。

試試這個:

if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0) 
    { 
     //your code 
    } 
    else 
    { 
     // your code 
    } 
1

你可以試試.....

if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0) 
{ 
    //your code here ....... 
} 
else 
    {//your code here ...}