假设我为两个任务创建了NSURLSessionDataTask。让我们说我一个接一个地连续调用任务,并且第一个任务响应没有到达时对第二个任务的响应结束。所以,现在我让代理DidFinishWithError运行并处理第二个任务的响应。当委托正在运行时,如果第一个任务的响应到了,委托方法会发生什么?
它是否会完成第二个任务响应的方法(首先出现),然后从头开始处理第一个任务响应的逻辑?
我想知道它是如何运作的。我试了一下,似乎在这种情况下,第一个任务的调用(比第二个任务需要更长的时间来回复数据)再次返回服务器。
答案 0 :(得分:1)
NSURLSession
具有delegateQueue
属性,您可以在创建时设置该属性。将在此队列上调用所有委托方法。如果队列繁忙,那么它将像任何其他队列一样 - 在队列可以接受之前不会执行这些方法。
在您的示例中,第一个完成处理程序必须在第二个完成处理程序执行之前返回。