In meiner App habe ich eine Funktion, die eine NSRURLSession erstellt und eine NSURLRequest mit sendet
sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
Im Abschlussblock für diese Aufgabe muss eine Berechnung durchgeführt werden, die dem aufrufenden Ansichtscontroller ein UIImage hinzufügt. Ich habe eine Funktion namens
func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
das macht die UIImage-Addition Berechnung. Wenn ich versuche, den Code zum Hinzufügen von Ansichten innerhalb des Abschlussblocks auszuführen, gibt Xcode einen Fehler aus, der besagt, dass ich die Layout-Engine während eines Hintergrundprozesses nicht verwenden kann. Also habe ich auf SO Code gefunden, der versucht, eine Methode im Hauptthread in die Warteschlange zu stellen:
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)
})
Ich weiß jedoch nicht, wie ich diesem Funktionsaufruf die Parameter "receiveAddr" und "amountBTC" hinzufügen soll. Wie würde ich das tun oder kann jemand einen optimalen Weg vorschlagen, um einen Methodenaufruf zur Hauptwarteschlange der Anwendung hinzuzufügen?