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
和键盘,这是使用的原因,它不是必需的,但我的源代码需要,选中它,但如果在显示警报之前不退出键盘,我希望在警报中单击“确定”后,键盘会自动显示在活动文本字段中。为什么要使用