Dalam aplikasi saya, saya memiliki fungsi yang membuat NSRURLSession dan mengirimkan NSURLRequest menggunakan
sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
Di blok penyelesaian untuk tugas ini, saya perlu melakukan beberapa perhitungan yang menambahkan UIImage ke viewcontroller panggilan. Saya memiliki fungsi yang dipanggil
func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
yang melakukan perhitungan penambahan UIImage. Jika saya mencoba menjalankan kode tambah-tampilan di dalam blok penyelesaian, Xcode melempar kesalahan yang mengatakan bahwa saya tidak dapat menggunakan mesin tata letak saat dalam proses latar belakang. Jadi saya menemukan beberapa kode pada SO yang mencoba mengantri metode pada utas utama:
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)
})
Namun, saya tidak tahu bagaimana cara menambahkan parameter "acceptAddr" dan "numberBTC" ke pemanggilan fungsi ini. Bagaimana saya melakukan ini, atau bisakah seseorang menyarankan cara optimal untuk menambahkan pemanggilan metode ke antrian utama aplikasi?