NSURLSessionTaskDelegate方法URLSession:task:didCompleteWithError:从不调用

mph*_*mph 5 objective-c ios nsurlsession

我的所有网络代码都依赖于NSURLSession委托方法 - 而不是完成处理程序.我的数据和下载任务都运行良好,但我的上传任务永远不会 URLSession:task:didCompleteWithError:被调用.然而, URLSession:dataTask:didReceiveData:URLSession:dataTask:willCacheResponse:completionHandler:委托方法ARE调用.

如果我在会话对象上将资源超时设置为一个非常低的值,那么didCompleteWithErrors就会被调用,但这显然不是解决方案.

有任何想法吗?我快要疯了.

谢谢.

Rob*_*Rob 5

didCompleteWithError如果你实现了willCacheResponse,你将看不到被调用,但如果实现无法实际调用completionHandler.你必须打电话给completionHandler.

对于NSURLSession提供completionHandler参数的任何和所有各种委托方法(例如,身份验证挑战,重定向等)也是如此.如果实现这些相应的方法,则必须确保completionHandler调用它.