ios中的多个if-else条件

ios中的多个if-else条件,ios,iphone,if-statement,Ios,Iphone,If Statement,我有一个注册视图控制器,它包含多个文本字段来注册用户。 我需要验证所有文本字段,如非空,有效电子邮件,用户名,密码等,并显示所有不同情况下的警报消息 现在,我将采用以下方法: if (condition) { if (condition) { if (condition) { } else { [alert show]; } } else { [alert show]; } } els

我有一个注册视图控制器,它包含多个文本字段来注册用户。 我需要验证所有文本字段,如非空有效电子邮件用户名密码等,并显示所有不同情况下的警报消息

现在,我将采用以下方法:

if (condition) {
    if (condition) {
        if (condition) {
        } else {
            [alert show];
        }
    } else {
        [alert show];
    }
} else {
    [alert show];
}
我知道这不是最好的办法。所以请大家建议一个合适的方法来完成这个任务


谢谢,

如果有其他情况,请选择多个

NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];

NSString *mobileRegex = @"[0-9]{6,14}$";
NSPredicate *mobileTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mobileRegex]


if  (txtName.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Name" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Mobile Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if ([mobileTest evaluateWithObject:txtMobile.text] == NO)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Mobile Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length < 10)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Phone Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length > 10)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Phone Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtEmail.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Email" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if ([emailTest evaluateWithObject:txtEmail.text] == NO)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Email" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else
{
 //success Code
}
NSString*emailRegEx=@“[A-Z0-9a-z.\%+-]+@[A-Za-Z0-9.-]+\.[A-Za-z]{2,4}”;
NSPredicate*emailTest=[NSPredicate谓词WithFormat:@“SELF MATCHES%@”,emailRegEx];
NSString*mobileRegex=@“[0-9]{6,14}$”;
NSPredicate*mobileTest=[NSPredicate谓词格式:@“自匹配%@”,mobileRegex]
if(txtName.text.length==0)
{
[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入名称”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length==0)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入手机号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if([mobileTest evaluateWithObject:txtMobile.text]==否)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效的手机号码”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length<10)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电话号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length>10)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电话号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtEmail.text.length==0)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入电子邮件”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if([emailTest evaluateWithObject:txtEmail.text]==否)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电子邮件”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
其他的
{
//成功代码
}

多个If-else条件

NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];

NSString *mobileRegex = @"[0-9]{6,14}$";
NSPredicate *mobileTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mobileRegex]


if  (txtName.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Name" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Mobile Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if ([mobileTest evaluateWithObject:txtMobile.text] == NO)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Mobile Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length < 10)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Phone Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtMobile.text.length > 10)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Phone Number" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if  (txtEmail.text.length == 0)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter Email" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else if ([emailTest evaluateWithObject:txtEmail.text] == NO)
{
    [[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please Enter valid Email" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
}
else
{
 //success Code
}
NSString*emailRegEx=@“[A-Z0-9a-z.\%+-]+@[A-Za-Z0-9.-]+\.[A-Za-z]{2,4}”;
NSPredicate*emailTest=[NSPredicate谓词WithFormat:@“SELF MATCHES%@”,emailRegEx];
NSString*mobileRegex=@“[0-9]{6,14}$”;
NSPredicate*mobileTest=[NSPredicate谓词格式:@“自匹配%@”,mobileRegex]
if(txtName.text.length==0)
{
[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入名称”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length==0)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入手机号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if([mobileTest evaluateWithObject:txtMobile.text]==否)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效的手机号码”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length<10)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电话号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtMobile.text.length>10)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电话号码”代表:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if(txtEmail.text.length==0)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入电子邮件”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
else if([emailTest evaluateWithObject:txtEmail.text]==否)
{
[[[UIAlertView alloc]initWithTitle:@“警报”消息:@“请输入有效电子邮件”代理:自我取消按钮:@“确定”其他按钮:无,无]显示];
}
其他的
{
//成功代码
}

此处
isAllFieldsAreValid()
将验证您可以在此处添加所有验证的所有字段

showAlert
是一种显示错误警报的方法

allTrim()
是一个将修剪空白的宏

- (BOOL)isAllFieldsAreValid {

    //here only empty string is checked you can add other if-else to validate email, phno, etc.

    if ([allTrim(self.txtFname.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter first name."];
        return false;

    } else if ([allTrim(self.txtLname.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter last name."];
        return false;

    } else if ([allTrim(self.txtEmail_SignUp.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter email id."];
        return false;

    } else if ([allTrim(self.txtPassword_SignUp.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter password."];
        return false;
    }

    return true;
}
你可以在点击按钮时调用此按钮,在判断正确与否时,你可以采取行动

- (IBAction)buttonTappedInLoginView:(UIButton *)sender {

    if ([self isAllFieldsAreValid]) {
        // do stuff
    }

}

此处
isAllFieldsAreValid()
将验证您可以在此处添加所有验证的所有字段

showAlert
是一种显示错误警报的方法

allTrim()
是一个将修剪空白的宏

- (BOOL)isAllFieldsAreValid {

    //here only empty string is checked you can add other if-else to validate email, phno, etc.

    if ([allTrim(self.txtFname.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter first name."];
        return false;

    } else if ([allTrim(self.txtLname.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter last name."];
        return false;

    } else if ([allTrim(self.txtEmail_SignUp.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter email id."];
        return false;

    } else if ([allTrim(self.txtPassword_SignUp.text) isEqualToString:@""]) {

        [self showAlert:@"Please enter password."];
        return false;
    }

    return true;
}
你可以在点击按钮时调用此按钮,在判断正确与否时,你可以采取行动

- (IBAction)buttonTappedInLoginView:(UIButton *)sender {

    if ([self isAllFieldsAreValid]) {
        // do stuff
    }

}
使用此代码

if (firstnametf.text.length==0 || lastnametf.text.length==0 || emailtf.text.length==0 || myimageView.image == nil || commenttf.text.length==0 || [commenttf.text isEqualToString:@"Comment"])

            {
                [self validatetextfield];

            }
        else if (![emailtf.text isEqualToString:@""])
        {

             NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
             NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
                //Valid email address
             if ([emailTest evaluateWithObject:emailtf.text] == YES)
                {
                      //All conditions are checked, you will set the function
                }
                else if () 
                {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test!" message:@"Please Enter Valid Email Address. \nex. fdsjfkd@mail.com" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [alert show];
                }

         }
}
方法:

-(void) validatetextfield
{
    if (firstnametf.text.length==0) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Firstname Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [firstnametf becomeFirstResponder];
    }
    else if (lastnametf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Lastname Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [lastnametf becomeFirstResponder];
    }
    else if (emailtf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Email Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [emailtf becomeFirstResponder];
    }
    else if(commenttf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Comment Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [commenttf becomeFirstResponder];
    }
    else if ([commenttf.text isEqualToString:@"Comment"])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Comment Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [commenttf becomeFirstResponder];
    }
    else if (myimageView.image == nil)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Image not Upload!" message:@"Please Upload Image" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];

    }
}
更改警报条件,希望有帮助使用此代码

if (firstnametf.text.length==0 || lastnametf.text.length==0 || emailtf.text.length==0 || myimageView.image == nil || commenttf.text.length==0 || [commenttf.text isEqualToString:@"Comment"])

            {
                [self validatetextfield];

            }
        else if (![emailtf.text isEqualToString:@""])
        {

             NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
             NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
                //Valid email address
             if ([emailTest evaluateWithObject:emailtf.text] == YES)
                {
                      //All conditions are checked, you will set the function
                }
                else if () 
                {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test!" message:@"Please Enter Valid Email Address. \nex. fdsjfkd@mail.com" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [alert show];
                }

         }
}
方法:

-(void) validatetextfield
{
    if (firstnametf.text.length==0) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Firstname Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [firstnametf becomeFirstResponder];
    }
    else if (lastnametf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Lastname Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [lastnametf becomeFirstResponder];
    }
    else if (emailtf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Email Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [emailtf becomeFirstResponder];
    }
    else if(commenttf.text.length==0)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Comment Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [commenttf becomeFirstResponder];
    }
    else if ([commenttf.text isEqualToString:@"Comment"])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Comment Field Empty!" message:@"Please Enter the Valid Details" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [commenttf becomeFirstResponder];
    }
    else if (myimageView.image == nil)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Image not Upload!" message:@"Please Upload Image" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];

    }
}

更改警报条件,希望它有帮助

否则请使用iOutletCollection bro,@Anbu我将如何使用Outlet collection来执行此操作?@iDev750-当然可以use@iDev750-事实上理解我添加此的目的,我们可以将此自动化,否则使用iBootletCollection bro,@Anbu我将如何使用Outlet collection来实现这一点?@iDev750-当然可以use@iDev750-事实上,我明白我添加这个的目的,我们可以实现它的自动化谢谢你Richard。我认为这是检查多个条件的更好方法。谢谢Richard。我认为这是检查多个条件的更好方法。为什么在每个if块中都使用[tf becomeFirstResponder]?我认为没有必要添加这一行。因为FirstResponder习惯于在警报显示时单击“确定”自动编辑特定的
UITextfield
和键盘,这是使用的原因,它不是必需的,但我的源代码需要,选中它,但如果在显示警报之前不退出键盘,我希望在警报中单击“确定”后,键盘会自动显示在活动文本字段中。为什么要使用