2012-01-13 101 views
0

在这种情况下,我使用:如何在一个if语句中使用多个项目?

- (IBAction)reset:(id) sender { 

if ((boxHide1.hidden = YES) && (boxHide2.hidden = YES)) { 
    resetHide.hidden = NO; 
} 

}

我怎样才能做到这一点?我在陈述中需要12个项目。谢谢!

+1

你需要做什么? – Rog 2012-01-13 19:49:37

+0

我正在做一个游戏,你必须点击屏幕上的所有框。我想让按钮在屏幕上隐藏更多的框,直到所有已经存在的框都消失。 – 2012-01-13 19:51:00

+2

为什么不使用带有按钮的数组而不是使用每个按钮的实例变量? – DarkDust 2012-01-13 20:01:43

回答

3

您可以使用该解决方案@Joe贴出但你能告诉隐蔽代码/取消隐藏可以得到非常混乱,难以阅读。

如果你想保持你的代码干净,易于理解/维护,我会把所有这些按钮放到一个NSMutableArray中并遍历它,以确定是否要显示重置按钮。

BOOL showResetButton = YES; 
for (UIButton *button in buttonsArray) 
{ 
    if (button.hidden == NO) // If any of the buttons is not hidden do not show the reset button 
     showResetButton = NO; 
} 
resetButton.hidden = showResetButton; 
2

请确保您使用==来比较值,但由于它们已经是布尔值,因此不需要与YES进行比较。如果所有比较结果均为AND(&&),并且可以删除括号,否则如果有任何OR(||)操作,则需要对相应的操作进行分组。

if (boxHide1.hidden && 
    boxHide2.hidden && 
    ... && 
    boxHide12.hidden) 
{ 
    resetHide.hidden = NO; 
} 
+0

啊,谢谢你我的朋友!非常感激! – 2012-01-13 19:52:17

+0

啊,我使用: - (IBAction为)复位:(ID)发送方{ 如果(boxHide1.hidden && boxHide2.hidden && boxHide3.hidden && boxHide4.hidden && boxHide5.hidden && boxHide6.hidden && boxHide7.hidden && boxHide8.hidden && boxHide9.hidden && boxHide10.hidden && boxHide11.hidden && boxHide12.hidden){ resetHide.enabled = YES; } } – 2012-01-13 19:54:26

+0

@RyanCohen - 在你深入研究Objective-C之前,我建议你花更多的时间学习C语言。如果你不了解布尔逻辑,那么存储管理将成为[无礼参考]。 – 2012-01-13 20:13:37