1
votes

Comment appeler une fonction avec le gestionnaire de complétion suivant?

Comment appeler une fonction avec la signature suivante?

InAppHandler.purchaseSubscription("test") {
     processPurchase()
}

est-ce

func purchaseSubscription(productId: String, completion:  @escaping  (Bool, String, String) -> Void) {


1 commentaires

.purchase Subscription ("test") {flag, x, y in flag est le Book et x , y vos chaînes


6 Réponses :


2
votes

ceci est votre appel:

 func purchaseSubscription(productId: String, completion:  @escaping  (Bool, String, String) -> Void) {
    completionResult(true,"Data1", "Data2")
    }

Et voici votre définition: XXX


0 commentaires

3
votes

Le gestionnaire de complétion nécessite trois paramètres d'entrée. Vous pouvez ignorer les paramètres, mais vous devez être explicite à ce sujet. De plus, la signature indique qu'il s'agit d'une fonction membre, alors que vous semblez appeler la fonction sur le type (class, struct, enum ...). Donc, la bonne façon serait:

let inAppHandler = InAppHandler()
inAppHandler.purchaseSubscription(productId: "test") { _, _, _ in 
    processPurchase()
}


0 commentaires

2
votes

Voici le code que vous devez utiliser:

InAppHandler.purchaseSubscription(productId: "test") { (boolVal1, stringVal, boolVal2) in
    processPurchase()
}


0 commentaires

2
votes

Votre appel doit ressembler à ceci

 InAppHandler.purchaseSubscription(productId: "YOUR_PRODUCT_ID_STRING") { (boolValue, firstString, secondString) in

 }


0 commentaires

1
votes

Puisque vous n'utilisez aucun des paramètres de fermeture, il est recommandé d'utiliser _

      purchaseSubscription(productId: "Id") { success, _, _ in
         if success {
               processPurchase()
          }
       }

Il est bon de vérifier le paramètre de fermeture avant de procéder à processPurchase ( )

  purchaseSubscription(productId: "Id") { _, _, _ in
            processPurchase()
     }


0 commentaires

8
votes

Il peut y avoir plusieurs formulaires pour appeler la méthode.

1. Définissez les paramètres lors de l'appel de la fermeture , ue

InAppHandler.purchaseSubscription(productId: "test") {(_, _, _) in
    processPurchase()
}


0 commentaires