无法比较if语句中的值
问题描述:
我是新来的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,你可以比较字符串:
if ([[[passenger checkedIn] objectAtIndex:0] isEqualToString:@"0"])
当然,这将是更具可读性,以便拥有一组NSNumber
s和使用
if ([[[passenger checkedIn] objectAtIndex:0] boolValue])
+3
对于If语句的内容来说,它更具可读性,并且作为返回bool的方法提取,并将其称为“IsPassenderCheckedIn”。这是我喜欢用我的“复杂”或冗长的陈述来做的事情;之后它就像散文一样。 –
+0
谢谢,我会这样做 –
我相信'@“0”'因为它不是'nil'而评估为'true'。 – Arc676
你们但如何正确地做到这一点? –
对象始终是“@”0“'还是”@“1”'? – Arc676