1

私は電卓を作ろうとしていますが、3 つの UITextFields があります。力の単純な計算です。そのため、少なくとも 2 つのフィールドに何かを入力する必要があり、or が計算されます。2 つのフィールドに何もない場合は、UIAlertView が必要です。

私はすでに UIAlertView を持っていますが、それは機能します。しかし、問題は、2 つのフィールドにテキストが含まれている必要がある場合に If 関数を設定し、それを試して 1 つのフィールドに何かを入れると、UIAlertView が表示されないことです。

これが私が使用しているコードです...

- (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]];
}

}
4

2 に答える 2

0

|| && は AND を意味します。arg1 || を行う場合 arg2 のうちの 1 つが空の場合、アラートが表示されます。

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

Xcodeを開いて自分で試すのは面倒ですが、うまくいかない場合は試してみてください(!([thingy.text length]>0) || !(samethingagain)

于 2013-10-26T15:08:43.433 に答える
0

UITexfieldいずれかが空の場合、alertView を表示しますか? のいずれかが空の場合にのみ表示する場合は、論理演算子@Oscarを使用する必要があります。||UIAlertViewUITextfield

これにより、両方の 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)
于 2013-10-26T15:33:33.760 に答える