2015-06-14 224 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) 
    }) 
})