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.timeoutIntervalForRequest
和3.0
,但这没有帮助。
我发现了NSURLSessionDataTask acting suspiciously slow
但我无法添加dispatch_async(dispatch_get_main_queue())
,因为UIViewController is not a subtype of Void
。我应该在哪里定义类型?
答案 0 :(得分:0)
使用that解决此问题。只需转换为Swift。
var session: NSURLSession = NSURLSession(configuration: sessionConf, delegate: nil, delegateQueue: NSOperationQueue.mainQueue())