注册判断问题

iOS 码拜 7年前 (2015-11-16) 702次浏览
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注册失败”);
     
这是本人限制后写的注册判断,注册条件都是正确的,但是问题是,当用户注册的时候注册信息时注册信息其中一项填错了,就会报错,而本人上面的代码写错了,报错的对象会错误。例如手机号码填错,报错的是用户名,求指点。
解决方案: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];

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明注册判断问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)