Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 防止仅通过设置用户名创建用户_Ios_Objective C_Parse Platform - Fatal编程技术网

Ios 防止仅通过设置用户名创建用户

Ios 防止仅通过设置用户名创建用户,ios,objective-c,parse-platform,Ios,Objective C,Parse Platform,在我的应用程序中,用户可以使用Parse创建帐户。这很好,但我只是注意到,当我使用新用户名注册时,不注册密码是可以的 我已经对PFUser进行了子分类,这是我的注册: // LoginViewController.m - (IBAction)signUpButtonPressed:(UIButton *)sender { [self signUpUser:signUpAlertControllerUsernameTextField.text password:si

在我的应用程序中,用户可以使用Parse创建帐户。这很好,但我只是注意到,当我使用新用户名注册时,不注册密码是可以的

我已经对PFUser进行了子分类,这是我的注册:

// LoginViewController.m
- (IBAction)signUpButtonPressed:(UIButton *)sender {
    [self signUpUser:signUpAlertControllerUsernameTextField.text
            password:signUpAlertControllerPasswordTextField.text];
}

- (void)signUpUser:(NSString *)usernameString password:(NSString *)passwordString {
    // Create a new user to sign up.
    User *newUser = [User user];
    newUser.username = usernameString;
    newUser.password = passwordString;
    [newUser signUpUser];
}

// User.m
- (void)signUpUser {
    [self signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (!error) {
            // Sign up success.
            NSLog(@"Sign up success");
            [[NSNotificationCenter defaultCenter] postNotificationName:@"SignUpSuccessNotification"
                                                                object:self];
        } else {
            // Sign up failed.
            NSLog(@"Sign up error: %@", [error userInfo][@"error"]);
        }
    }];
}
如果我将username textfield留空,则解析响应为:

[Error]: missing username (Code: 200, Version: 1.7.4)
但是当我将密码文本字段留空时,没有任何警告


那么,有没有一种方法可以让Parse在创建新用户时也检测到是否没有输入密码?

通过Objective-C验证来实现这一点,而不是期望Parse来实现这一点。例如:

- (void) checkFieldsComplete
{
    if ([signUpAlertControllerUsernameTextField.text isEqualToString:@""] || [signUpAlertControllerPasswordTextField.text isEqualToString:@""])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops" message:@"You need to complete all fields" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
    }
    else{
        [self signUpUser];
    }
}

我已经用解析错误代码解决了这个问题。因此,当我使用Parse创建一个新用户时,我现在可以这样做:

if ([error code] == 100) {
    NSLog(@"No internet connection");
    return;
} else if ([error code] == 200) {
    NSLog(@"No username entered in text fields");
    return;
} else if ([error code] == 201) {
    NSLog(@"No password entered in text fields");
    return;
} else if ([error code] == 202) {
    NSLog(@"Username taken");
    return;
}

然后,我可以根据错误类型使用所有其他方法,解析返回并显示我自己的警报控制器

是的,我正在考虑这样做。但我只是想问问是否可能。像Parse处理username validation@Jordan Johnson一样,由服务器处理服务器验证非常好