ios - 使用 NSURLSession 处理顺序下载

标签 ios nsurlsession

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

例如:

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

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

调用dataTaskWithURL:completionHandler:会不会更好再次在每个请求的 block 中或在 completionBlock 中的循环中进行阻塞网络调用?

谢谢!

最佳答案

是的,您可以在 completionBlock 中进行额外的调用。但是请求不应该是“阻塞的”,而是您只是为额外的数据发起额外的异步请求。如果您的模型支持的话,您希望它们彼此同时运行。如果您按顺序而不是同时发出这些后续请求,您将付出显着的性能损失。

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

相关文章:

ios - 在 iOS 中使用 NSPredicate 进行单元测试

swift - NSURLSession 参数无法识别

ios - 请求时间过长时取消 NSURLSession dataTask

iphone - CGImageCreateWithImageInRect 没有正确裁剪

ios - 打开模块 'Swift' 的导入文件权限被拒绝

objective-c - NSURLSession:收到 401 HTTP 错误

http - IOS 9 App Transport Security 阻止了明文 HTTP 问题

swift - 如何从 NSURLSession.sharedSession().dataTaskWithRequest 获取数据

ios - 检测用户是否在 UITextView 中输入了表情符号字符

ios - 如何在 WatchOS 6 中将 Crown 输入打印到控制台