使用 NSURLSession 处理顺序下载
Handling sequential downloads with NSURLSession
我有一个数据获取任务,我想在后台线程上执行,但在 completionBlock
中获得响应后需要进行额外的调用。
例如:
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:requestURL completionHandler:completionBlock] resume];
在任务成功获取数据并调用 completionBlock
之后,我想从 NSURL
下载额外的 10 个资源,它们是 completionBlock
获取的数据的一部分。
在每个请求的块中再次调用 dataTaskWithURL:completionHandler:
还是在 completionBlock
的循环中进行阻塞网络调用更好?
谢谢!
是的,您可以在 completionBlock
内拨打额外的电话。但是请求不应该是 "blocking",而是您只需为额外的数据发起额外的异步请求。如果您的模型支持的话,您希望它们彼此同时运行。如果您按顺序而不是同时发出这些后续请求,您将付出显着的性能损失。
我有一个数据获取任务,我想在后台线程上执行,但在 completionBlock
中获得响应后需要进行额外的调用。
例如:
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:requestURL completionHandler:completionBlock] resume];
在任务成功获取数据并调用 completionBlock
之后,我想从 NSURL
下载额外的 10 个资源,它们是 completionBlock
获取的数据的一部分。
在每个请求的块中再次调用 dataTaskWithURL:completionHandler:
还是在 completionBlock
的循环中进行阻塞网络调用更好?
谢谢!
是的,您可以在 completionBlock
内拨打额外的电话。但是请求不应该是 "blocking",而是您只需为额外的数据发起额外的异步请求。如果您的模型支持的话,您希望它们彼此同时运行。如果您按顺序而不是同时发出这些后续请求,您将付出显着的性能损失。