我有一个要在后台线程上执行的数据获取任务,但需要在completionBlock中得到响应后再进行其他调用。

例如:

NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:requestURL completionHandler:completionBlock] resume];

在任务成功获取数据并调用completionBlock之后,我要下载说来自NSURL的另外10个资源,这些资源是completionBlock获得的数据的一部分。

最好在每个请求的块中再次调用dataTaskWithURL:completionHandler:还是在completionBlock的循环中进行阻止网络调用?

谢谢!

最佳答案

是的,您可以在completionBlock内进行其他调用。但是,这些请求不应该“阻塞”,而只是对其他数据发起其他异步请求。如果您的模型支持,则您希望它们相对于彼此同时运行。如果顺序发出这些后续请求而不是同时发出这些后续请求,则您将付出巨大的性能损失。

关于ios - 使用NSURLSession处理顺序下载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27736728/

10-13 00:02