NSURLSessionDataTask 中的 popViewController 动画工作缓慢
Posted
技术标签:
【中文标题】NSURLSessionDataTask 中的 popViewController 动画工作缓慢【英文标题】:popViewControllerAnimated work slow inside NSURLSessionDataTask 【发布时间】:2014-07-17 08:22:07 【问题描述】: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 一起工作 - 它在一瞬间工作,我在日志中看到“测试”。但是popViewControllerAnimated
在调用整个应用程序后冻结大约 20-30 秒。我认为这是因为NSURLSessionDataTask
具有请求和响应数据的超时间隔。所以我尝试了:为3.0
制作sessionConfi.timeoutIntervalForResource
和sessionConfi.timeoutIntervalForRequest
,但它没有帮助。
我找到了这个NSURLSessionDataTask acting suspiciously slow
但我无法添加dispatch_async(dispatch_get_main_queue())
,因为UIViewController is not a subtype of Void
。我应该在哪里定义类型?
【问题讨论】:
【参考方案1】:用that 解决这个问题。只需转换为 Swift。
var session: NSURLSession = NSURLSession(configuration: sessionConf, delegate: nil, delegateQueue: NSOperationQueue.mainQueue())
【讨论】:
以上是关于NSURLSessionDataTask 中的 popViewController 动画工作缓慢的主要内容,如果未能解决你的问题,请参考以下文章
如何获取数据以从 NSURLSessionDataTask 返回
NSURLSessionDataTask 内存警告应用程序崩溃
使用 NSURLSessionDataTask 显示文件下载进度