2016-01-21 162 views
1

我是新來的ios。我想檢查陳述是否屬實,但是這種情況即使在虛假的情況下也是如此。無法比較if語句中的值

NSMutableArray *passengers=loginObj.passengers; 
PassengerObj *passenger=[passengers objectAtIndex:0]; 
    if([[passenger checkedIn] objectAtIndex:0]) 
    { 
     [somestatement]; 
    } 

調試器

_checkedIn __NSCFArray * @"1 object" 0x168b8200 
    >[0] __NSCFBoolean * @"0" 0x37e696d4 
+1

我相信'@「0」'因爲它不是'nil'而評估爲'true'。 – Arc676

+0

你們但如何正確地做到這一點? –

+0

對象始終是「@」0「'還是」@「1」'? – Arc676

回答

4

假設您的陣列只包含包含一個1或0,你可以比較字符串:

if ([[[passenger checkedIn] objectAtIndex:0] isEqualToString:@"0"]) 

當然,這將是更具可讀性,以便擁有一組NSNumber s和使用

if ([[[passenger checkedIn] objectAtIndex:0] boolValue]) 
+3

對於If語句的內容來說,它更具可讀性,並且作爲返回bool的方法提取,並將其稱爲「IsPassenderCheckedIn」。這是我喜歡用我的「複雜」或冗長的陳述來做的事情;之後它就像散文一樣。 –

+0

謝謝,我會這樣做 –