if ([Utils validateUserName:_username.text]) {
if (_name.text !=nil) {
if ([Utils isValidateEmail:_email.text]) {
if ([Utils validatePassword:_password.text]) {
if ([Utils validatePhone:_phoneNumber.text]) {
NSLog(@”注册成功”);
LoginViewController * loginVC =[[LoginViewController alloc]init];
[self.navigationController pushViewController:loginVC animated:YES];
}
// 这里是为了填错的时候报错的,但是现在的问题是本人放了return后,本人把邮箱输入错误,报错的却是用户名
ALERT(@”提示”, @”用户名格式不正确”);
NSLog(@”1注册失败”);
}
ALERT(@”提示”, @”昵称输入格式错误”);
NSLog(@”5注册失败”);
}
ALERT(@”提示”, @”邮箱输入不正确”);
NSLog(@”3注册失败”);
}
ALERT(@”提示”, @”密码输入格式错误”);
NSLog(@”4注册失败”);
}
ALERT(@”提示”, @”手机号码输入格式错误”);
NSLog(@”2注册失败”);
这是本人限制后写的注册判断,注册条件都是正确的,但是问题是,当用户注册的时候注册信息时注册信息其中一项填错了,就会报错,而本人上面的代码写错了,报错的对象会错误。例如手机号码填错,报错的是用户名,求指点。
if (_name.text !=nil) {
if ([Utils isValidateEmail:_email.text]) {
if ([Utils validatePassword:_password.text]) {
if ([Utils validatePhone:_phoneNumber.text]) {
NSLog(@”注册成功”);
LoginViewController * loginVC =[[LoginViewController alloc]init];
[self.navigationController pushViewController:loginVC animated:YES];
}
// 这里是为了填错的时候报错的,但是现在的问题是本人放了return后,本人把邮箱输入错误,报错的却是用户名
ALERT(@”提示”, @”用户名格式不正确”);
NSLog(@”1注册失败”);
}
ALERT(@”提示”, @”昵称输入格式错误”);
NSLog(@”5注册失败”);
}
ALERT(@”提示”, @”邮箱输入不正确”);
NSLog(@”3注册失败”);
}
ALERT(@”提示”, @”密码输入格式错误”);
NSLog(@”4注册失败”);
}
ALERT(@”提示”, @”手机号码输入格式错误”);
NSLog(@”2注册失败”);
这是本人限制后写的注册判断,注册条件都是正确的,但是问题是,当用户注册的时候注册信息时注册信息其中一项填错了,就会报错,而本人上面的代码写错了,报错的对象会错误。例如手机号码填错,报错的是用户名,求指点。
解决方案:40分
if除非很特殊情况,不然不要嵌套那么多层,你这种需求可以用保镖模式,也就是说把坏的情况逐一排除在外,最后再执行你想要的语句
可以这样改写
if (!([Utils validateUserName:_username.text])) {
ALERT(XXX);
NSLog(@”XXXX”);
return;
}
if (!([Utils isValidateEmail:_email.text])) {
ALERT(XXX);
NSLog(@”XXXX”);
return;
}
…用这种方式逐一排除
最后
NSLog(@”注册成功”);
LoginViewController * loginVC =[[LoginViewController alloc]init];
[self.navigationController pushViewController:loginVC animated:YES];
可以这样改写
if (!([Utils validateUserName:_username.text])) {
ALERT(XXX);
NSLog(@”XXXX”);
return;
}
if (!([Utils isValidateEmail:_email.text])) {
ALERT(XXX);
NSLog(@”XXXX”);
return;
}
…用这种方式逐一排除
最后
NSLog(@”注册成功”);
LoginViewController * loginVC =[[LoginViewController alloc]init];
[self.navigationController pushViewController:loginVC animated:YES];