0

次のステップに進む前に、現在のユーザーがメールを確認したかどうかを確認しようとしています。私は何を間違っていますか助けてくださいありがとう。バックグラウンドでの電話番号の保存が機能します..「SavePhoneInBackground」を呼び出すと、アプリがクラッシュします

(SVProgressHUd はアクティビティ インジケーターです)

-(void) SavePhoneInBackground  {

    PFUser *user = [PFUser currentUser];
    user[@"phone"] = _phone_register.text;

    [user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {

        if (!error) {
            NSLog(@"PhoneUpdatingSucces!");
            _phone_register.text = nil;
            [self checkUserEmailVerify];

        }else {

            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Whoops!" message:@"Something went wrong! Try again." delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
            [alert show];
            [SVProgressHUD dismiss];
            NSLog(@"There was an error in the registration!");
        }
    }];
}


-(void) checkUserEmailVerify {

    PFUser *user = [PFUser currentUser];

    if (![[user objectForKey:@"emailVerified"] boolValue]) {
        // Refresh to make sure the user did not recently verify
        [user refresh];

        if (![[user objectForKey:@"emailVerified"] boolValue]) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Whoops!" message:@"You need to verify your emailadress!" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
            [alert show];
            return;
            [SVProgressHUD dismiss];
        }
    }
    // This is a triumph.
    [SVProgressHUD dismiss];
    [self performSegueWithIdentifier:@"login2" sender:self];

}
4

3 に答える 3

3
func giveCaketoUser(user: PFUser) {
                if (user.objectForKey("emailVerified").boolValue == true){
                    println("true")
                } else {
                    println("flase")
                }
            }
于 2015-04-18T12:02:44.967 に答える
1

これは、最近のプロジェクトの 1 つで使用したものです。

- (BOOL)validateEmail:(NSString *)emailStr {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailStr];
}

使用できる正規表現の他の操作があります。この方法を使用したときの問題は、カスタム アラートと NSLog エラーが表示されたまま、プロジェクトがユーザーを登録し続けることでしたが、それは方法ではなく、私の側で失敗した可能性があります。

これがあなたを正しい方向に導くことを願っています!

于 2015-01-22T20:33:51.287 に答える