使用 NSURL 处理顺序下载



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

例如:

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

任务成功获取数据并调用completionBlock我想从NSURL下载另外 10 个资源后,这些资源是completionBlock获取的数据的一部分。

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

谢谢!

是的,您可以在completionBlock内进行其他调用。但是请求不应该是"阻塞"的,而只是对额外的数据发起额外的异步请求。如果您希望它们彼此并发运行(如果您的模型支持)。如果按顺序而不是并发发出这些后续请求,则会付出显著的性能损失。

最新更新