popViewControllerAnimated在NSURLSessionDataTask内工作缓慢

时间:2014-07-17 08:22:07

标签: swift

var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
var sessionConf: NSURLSessionConfiguration =       NSURLSessionConfiguration.defaultSessionConfiguration()
var session: NSURLSession = NSURLSession(configuration: sessionConf)
let postData = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
//... there some code to work with Core Data

self.navigationController.popViewControllerAnimated(true) // <- This work slow
})

如果我将替换println("test")而不是popViewControllerAnimated只是因为测试代码与Core Data一起工作 - 它在一瞬间工作,我在日志中看到“test”。但是在调用整个应用程序冻结大约20-30秒后popViewControllerAnimated。我认为这是因为NSURLSessionDataTask具有请求和响应数据的超时间隔。所以我尝试过:为sessionConfi.timeoutIntervalForResource制作sessionConfi.timeoutIntervalForRequest3.0,但这没有帮助。

我发现了NSURLSessionDataTask acting suspiciously slow

但我无法添加dispatch_async(dispatch_get_main_queue()),因为UIViewController is not a subtype of Void。我应该在哪里定义类型?

1 个答案:

答案 0 :(得分:0)

使用that解决此问题。只需转换为Swift。

var session: NSURLSession = NSURLSession(configuration: sessionConf, delegate: nil, delegateQueue: NSOperationQueue.mainQueue())