Appeler sa propre fonction avec un gestionnaire de complétion


da1lbi3

J'ai une méthode pour créer un compte :

func createAccount (completion: @escaping (_ succes: Bool, _ message : String)->()) {
    Auth.auth().createUser(withEmail: createMail(), password: createPassword()) { (result, error) in
        if let _eror = error {
            //something bad happning
            print(_eror.localizedDescription )

            if let errorCode = AuthErrorCode(rawValue: _eror._code) {
                if(errorCode.rawValue == 17007) {
                    print("acount exist")
                    createAccount(completion: (Bool, String) -> ()
                } else {
                    //call itself and try it again
                }
            }
        } else {
            //user registered successfully
            print("user registered")
            return completion(true, "");
        }
    }
}

J'obtiens une erreur lorsque le logiciel crée un compte avec un email qui existe déjà, ce qui est bien (voir la elsedéclaration - //call itself and try it again).

Ce qui doit arriver, c'est que la fonction doit s'appeler à nouveau pour l'essayer avec un autre e-mail.

J'ai essayé de mettre createAccount(completion: (Bool, String) -> ()l' elseétui, mais cela n'a pas fonctionné.

Comment puis-je appeler à createAccount()nouveau la fonction dans le cas else ?

Sh_Khan

Vous devez passer à nouveau le même paramètre

createAccount(completion:completion)

Articles connexes


Comment appeler ce gestionnaire de complétion?

Kashif Je travaille avec Swift et je dois appeler cette méthode pour appeler des services Web. Je suis confus d'obtenir une erreur dans le gestionnaire d'achèvement. func makePost(serverURL: String, params: Dictionary<String,String>, completionHandler:(data:St

Gestionnaire de complétion en fonction

JordanieSkyn J'ai une fonction qui ressemble à ceci, et j'ai essayé d'ajouter un completionHandlerdans le code ci-dessous : func getValueFromAPI(completionHandler: (_ result: Bool) -> Void){ apii.getVehicle(id!).done { (vehicle: Vehicle) -> Vo

Swift: multithreading avec gestionnaire de complétion

dpb J'ai une fonction qui accède à une variable critique et a besoin d'un accès mutuellement exclusif, mais qui retourne via le gestionnaire d'achèvement. Voici ce que j'utilise actuellement pour tenter ceci: static func getAccessTokenValue(completionHandlerRe