Dans mon application, j'ai une fonction qui crée une NSRURLSession et envoie une NSURLRequest en utilisant
sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
Dans le bloc d'achèvement de cette tâche, je dois faire un calcul qui ajoute une UIImage au viewcontroller appelant. J'ai un func appelé
func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
qui effectue le calcul d'ajout d'UIImage. Si j'essaie d'exécuter le code d'ajout de vue à l'intérieur du bloc de complétion, Xcode génère une erreur indiquant que je ne peux pas utiliser le moteur de mise en page pendant un processus en arrière-plan. J'ai donc trouvé du code sur SO qui tente de mettre en file d'attente une méthode sur le thread principal:
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_MSEC)))
dispatch_after(time, dispatch_get_main_queue(), {
let returned = UIApplication.sharedApplication().sendAction("displayQRCode:", to: self.delegate, from: self, forEvent: nil)
})
Cependant, je ne sais pas comment ajouter les paramètres "receiveAddr" et "amountBTC" à cet appel de fonction. Comment faire cela, ou quelqu'un peut-il suggérer un moyen optimal d'ajouter un appel de méthode à la file d'attente principale de l'application?