UIAlert如果功能

时间:2013-10-26 15:01:31

标签: ios objective-c uialertview

我试图制作一个计算器然后我有3个UITextFields。 它是一种简单的力量计算。 因此你必须至少放入2个字段,然后计算其他字段。 如果2个字段中没有任何内容,则必须有UIAlertView。

我已经有了UIAlertView,它可以工作。但问题是我设置了If函数,两个Fields必须有一些文本,当我尝试并只放在一个字段中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]];
}

}

2 个答案:

答案 0 :(得分:0)

||是指OR,&&意味着和。如果你做arg1 || arg2,如果其中一个是空的,你会收到警报。

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

我无法打开Xcode并亲自尝试,但如果不起作用,请尝试(!([thingy.text length]>0) || !(samethingagain)

答案 1 :(得分:0)

如果UITexfield中的任何一个为空,您想要显示alertView吗? 然后@Oscar是正确的,如果只想在||中的一个为空时显示UIAlertView,则必须使用UITextfield逻辑运算符。

仅当两个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)