J'ai une demande de asynchronus dans une classe comme ça,Comment appeler une fonction à l'issue d'une demande de asynchronus - Swift 2.0
class Req{
func processRequest(){
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
//Do some operation here
})
}
}
Et j'appelle cette méthode d'un contrôleur de vue comme celui-ci,
class classOne{
func classOneFun(){
Req().processRequest()
self.demoFun()
}
func demoFun(){
//Do some operation here
}
}
Et j'appelle la même fonction d'un autre contrôleur de vue comme celui-ci,
class classTwo{
func classTwoFun(){
Req().processRequest()
self.sampleFun()
}
func sampleFun(){
//Do some operation here
}
}
Maintenant, je veux appeler le demoFun()
ou sampleFun()
seulement après le processRequest()
est terminée. Si demoFun() or sampleFun()
et processRequest()
sont dans la même classe, alors je peux appeler les fonctions dans le gestionnaire de complétion de processRequest(). Mais, dans mon cas, je ne peux pas faire cela, puisque j'ai près de 20 contrôleurs de vue qui appellent la fonction processRequest(). Je ne peux pas utiliser SynchronusRequest car il est obsolète dans Swift 2.0. Alors, comment puis-je appeler les autres fonctions une fois la requête asynchronus terminée?
Merci pour votre réponse. Je n'ai pas utilisé 'callback' et je ne sais pas ce que c'est. Puis-je savoir comment cela fonctionne? –
Ou si vous avez des tutoriels sur ce sujet, pouvez-vous partager ici? –
callback est le nom d'un paramètre. Remplacez callBack par "closureThatIsGoingToBeCalledWhenTheRequestSucceeds" et voyez si cela a plus de sens. – gnasher729