Iphone 如果UITextField为空,则显示UIAlert

Iphone 如果UITextField为空,则显示UIAlert,iphone,ios,ios5,Iphone,Ios,Ios5,我只想做的是,如果UITextField上没有任何内容,应用程序将显示一个警报。我不明白我做错了什么。这是我的密码: - (IBAction)Calculate:(id)sender { /*If there is nothing on textfield, it will show an alert*/ if ([addtake.text length] && [Subtake.text length] == 0) { UI

我只想做的是,如果
UITextField
上没有任何内容,应用程序将显示一个警报。我不明白我做错了什么。这是我的密码:

- (IBAction)Calculate:(id)sender {
    /*If there is nothing on textfield, it will show an alert*/

    if ([addtake.text length] && [Subtake.text length] == 0) 
    {

            UIAlertView *myAlert = [[UIAlertView  alloc]initWithTitle:@"Alert"message:@"Empty   TextField not allowed" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil];    
            [myAlert show];
    }

    else{

            NSString *Adding =[addtake text];
            NSInteger number = [Adding intValue]; /*Converting String to int*/
            NSInteger new = 5 + number;
            NSString *newString = [NSString stringWithFormat:@"%d",new];
            [myAdd setText:newString];
            /*Subtruct*/
            NSString *Subtruct =[Subtake text];
            NSInteger SubNumber = [Subtruct intValue];
            NSInteger newSub = 10 - SubNumber;
            NSString *newSubString = [NSString stringWithFormat:@"%d",newSub];
            [mySub setText:newSubString];

            [addtake resignFirstResponder]; 
            [Subtake resignFirstResponder];        
      }
  }

我假设addText是您的tesxField,因此您还需要设置条件[addtake.text length]==0

我假设addText是您的tesxField,因此您还需要设置条件[addtake.text length]==0

尝试将if语句中的每一个子条款都显式化—如果只是为了可读性

if ([addtake.text length] == 0 && [Subtake.text length] == 0) 
我会在你的测试中使用逻辑OR,而不是逻辑AND。因此,如果任一文本字段为空,则会显示警报

    if ((![addtake.text length]) || (![Subtake.text length])) 
    {

            UIAlertView *myAlert = [[UIAlertView  alloc]initWithTitle:@"Alert"message:@"Empty   TextField not allowed" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil];    
            [myAlert show];
    }

尝试将if语句中的每个子条款显式化-如果只是为了可读性

我会在你的测试中使用逻辑OR,而不是逻辑AND。因此,如果任一文本字段为空,则会显示警报

    if ((![addtake.text length]) || (![Subtake.text length])) 
    {

            UIAlertView *myAlert = [[UIAlertView  alloc]initWithTitle:@"Alert"message:@"Empty   TextField not allowed" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil];    
            [myAlert show];
    }

哪个文本字段?addtake还是Subtake?哪个文本字段?addtake还是Subtake?是的,这是最好的解决方案:-)是的,这是最好的解决方案:-)