我有一个要在后台线程上执行的数据获取任务,但需要在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/