从我在Swift 2.0中的iOS应用程序中,我在后台线程中请求来自服务器的数据时显示自定义微调器动画。 一旦我获得数据并更新sqlite数据库(约15秒处理所有查询),微调器就开始冻结。在XCode中,设备cpu显示95%到100%之间的活动。 我尝试以不同的方式使用GRAND CENTRAL DISPATCH,但我没有找到如何在不冻结微调器动画的情况下使其工作。 知道如何解决这个问题吗? 谢谢!!
我无法发布整个代码,但它与此类似:
//Using the spinner here https://github.com/icanzilb/SwiftSpinner
Spinner.show("Please wait", animated: true)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0))
{
//around 5 seconds to get data
var data = getDataFromServer()
//around 20 sec to process and save the data in sqlite. It stops spinning from here..
saveDataInDB(data)
}
答案 0 :(得分:0)
我发现了这个错误。在saveDataInDB()中,我正在使用OAuthSwift进行请求,该请求在接收回调时更改执行线程。它跳回主线程,然后db查询在主线程上运行。我在这里为这个问题开了一个新问题:OAuthSwift request callback on main thread