2013-03-07 62 views
0

我有一个奇怪的问题!当日志输出显示它不是时,我有一个IF语句正在执行,就好像它的条件是真的一样。 此外,这只发生在一个单独的按钮先被调用后,而不是之前。 因此,例如,如果我在运行该程序后直接单击此按钮,它将正常工作,只要我先单击另一个按钮,然后单击有问题的那个按钮,它就无法正确执行IF语句。如果语句执行不符合条件

正如你可能会从下面的代码告诉,按钮应该只亮起如果条件是真的..

- (IBAction)affectedFather:(id)sender 
{ 
    NSLog(@"status of autoDomOn %@",autoDomOn? @"On":@"Off"); 
    NSLog(@"status of xLinkedDomOn %@",xLinkDomOn? @"On":@"Off"); 

    if(autoDomOn==YES||xLinkDomOn==YES) 
    { 
    NSLog(@"father selected!"); 
    [sender setImage:[UIImage imageNamed:@"buttonOptionsHighlight.png"] forState:UIControlStateNormal]; 
     affectedMotherOut.imageView.image = [UIImage imageNamed:@"buttonOptions.png"]; 
     affectedParentsBoth.imageView.image = [UIImage imageNamed:@"buttonOptions.png"]; 
    } 
NSLog(@"Do nothing!"); 
} 

由于日志输出以下显示,IF语句不应该被满足,按钮不应该变成亮起......但它确实如此。

2013-03-07 06:55:41.858 TCGA beta[6134:c07] status of xLinkedDomOn Off 
2013-03-07 06:55:41.859 TCGA beta[6134:c07] Do nothing! 

要尽量避免在这个问题上,我不会粘贴等方法滥发太多的代码,但实际上我想了解是否有没有任何理由,一个if语句,如上面的一个会忽略条件?

我已经通过其他方法来排除任何括号错误或内存位置错误,似乎没有。很高兴根据要求提供更多信息。

非常感谢您提供任何建议!

亲切的问候, 山姆

+0

您是不是指'&&而不是'||'? – 2013-03-07 07:10:22

+0

是您的标签autoDomOn&xLinkDomOn BOOL类型? – Ganapathy 2013-03-07 07:10:39

+0

感谢您的回复,||是正确的,因为任何一个语句都可以为TRUE。 autoDomOn和xLinkDomOn都是'bool' – Rojan501 2013-03-07 07:26:19

回答

0

由于H2CO3已经暗示,从你提供可能仍然必须满足的条件(如果autoDomOn是YES),所以你可能要切换到& &,而不是信息|| 。

如果不是这种情况,请确保两个变量不会被改变,甚至不会被释放,并且其他代码中的内存被覆盖 - 这样您就可以访问正确的内存位置,但它会充满您的内容其他代码导致怪异的行为。

+0

道歉,不包括第一个条件,这是一个复制和粘贴错误,以及绝对不符合条件... 我已设法通过添加一个else语句来确保该按钮被设置为关闭。 'code' else 'code' { 'code' NSLog(@“Do nothing!”); 'code' [sender setImage:[UIImage imageNamed:@“buttonOptions.png”]'code' forState:UIControlStateNormal]; '代码'} 谢谢你的建议Beegz,我认为一定有什么奇怪的内存分配正在进行,但我还找不到它。 – Rojan501 2013-03-07 09:07:32