2015-06-14 206 views
0

下面的代码段我们遇到了一些问题,它在一个成功的异步HTTP响应上运行。接收到响应后,用户仍然在等待几秒钟(或更长时间),然后执行继续。异步HTTP响应在完成请求后持续几秒钟

someService.doAction(input, callback: { 
    self.performSegueWithIdentifier("Some-ID", sender:self) 
}) 

为什么在HTTP响应成功后不立即执行segue?

+0

是'performSegueWithIdentifier'被主线程上执行? – zaph

+0

@zaph是的,它在主线程 – MrMins

+1

你可能想要显示在mainthread上执行它的代码,因为你的当前代码不会在主线程上执行它,因为你将它作为回调运行,而没有任何关于什么线程的想法那可能发生! – luk2302

回答

1

尝试调用代码的主胎面:

someService.doAction(input, callback: { 
    dispatch_async(dispatch_get_main_queue(), { 
     self.performSegueWithIdentifier("Some-ID", sender:self) 
    }) 
})