W mojej aplikacji mam funkcję, która tworzy NSRURLSession i wysyła NSURLRequest za pomocą
sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
W bloku ukończenia tego zadania muszę wykonać obliczenia, które dodają obraz UIImagającego do wywołującego kontrolera widoku. Mam func o nazwie
func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
wykonuje obliczenia dodające UIImage. Jeśli spróbuję uruchomić kod dodający widok wewnątrz bloku uzupełniania, Xcode zgłasza błąd informujący, że nie mogę używać silnika układu podczas pracy w tle. Znalazłem więc kod na SO, który próbuje ustawić w kolejce metodę w głównym wątku:
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)
})
Nie wiem jednak, jak dodać parametry „receiveAddr” i „ountBTC ”do tego wywołania funkcji. Jak mam to zrobić lub czy ktoś może zasugerować optymalny sposób dodania wywołania metody do głównej kolejki aplikacji?