2012-01-13 100 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