2013-10-26 52 views
1

我試圖做一個計算器,然後我有3個UITextFields。 它是一個簡單的力量計算。 所以你必須至少放置2個領域的東西,並計算其他領域。 如果在2個字段中沒有任何內容,則必須有一個UIAlertView。UIAlert,如果功能

我已經有一個UIAlertView,它的工作原理。但問題是我設置的If函數,兩個字段必須有一些文本,當我嘗試它,並把一個字段的UIAlertView不顯示的東西,你能保存我嗎?

這裏使用的代碼IM ...

- (IBAction)berechnen:(id)sender 
{ 
float kraft = [kraftEingabe.text floatValue]; 
float masse = [masseEingabe.text floatValue]; 
float beschleunigung = [beschleunigungEingabe.text floatValue]; 


if (![masseEingabe.text length] > 0 && ![beschleunigungEingabe.text length] > 0) { 

UIAlertView *nachricht = 
[[UIAlertView alloc] 
initWithTitle:@"Achtung" 
message:@"Es müssen 2 Variablen eingegeben werden" 
delegate:nil cancelButtonTitle:@"OK" 
otherButtonTitles:nil]; 

[nachricht show]; 

} 
if ([masseEingabe.text length] > 0 && [beschleunigungEingabe.text length] > 0) { 

float berechnung = masse * beschleunigung; 

[kraftEingabe setText:[NSString stringWithFormat:@"%.5f", berechnung]]; 
} 

if ([kraftEingabe.text length] > 0 && [beschleunigungEingabe.text length] > 0) { 

float berechnung = kraft/beschleunigung; 

[masseEingabe setText:[NSString stringWithFormat:@"%.5f", berechnung]]; 
} 

} 

回答

0

所以你要顯示的alertView,如果任一UITexfield的是空? 然後@Oscar是正確的,如果您想要僅在UITextfield中的一個爲空時才顯示UIAlertView,則必須使用||邏輯運算符。

這將只顯示如果雙方的UITextField不大於0

if (![masseEingabe.text length] > 0 && ![beschleunigungEingabe.text length] > 0) 

所以它應該是警惕:

if (![masseEingabe.text length] > 0 || ![beschleunigungEingabe.text length] > 0) 

您設置的條件是有點難以閱讀的方式,在我看來,我更喜歡:

if ([masseEingabe.text length] == 0 || [beschleunigungEingabe.text length] == 0) 
0

||表示OR,& &表示AND。如果你做了arg1 || arg2,如果其中一個是空的,你會得到一個警報。

if (![masseEingabe.text length] > 0 || ![beschleunigungEingabe.text length] > 0) { 

而且我也懶得打開Xcode和自己試試吧,但如果不行,請嘗試(!([thingy.text length]>0) || !(samethingagain)

+0

謝謝你Answert,但問題是,我想&&因爲在這兩個UITextFields th必須是某種東西。所以代碼shuld與&&是正確的,但爲什麼它不起作用? 與&&在兩個UITextFields中都應該有一些東西,但是如果我在模擬器上嘗試它,我只需要在其中一個東西中放入某些東西,並且警報不會顯示。 –

+0

@Joel'![masseEingabe.text length]> 0 &&![beschleunigungEingabe.text length]> 0'表示如果**兩個字段都爲空**(如果某個東西=> false),但是如果需要**一些字段是空的**(=>兩者都需要有一些是真實的) – varren