我有一个数据获取任务,我想在后台线程上执行,但需要在completionBlock
中获得响应后进行其他调用。
例如:
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:requestURL completionHandler:completionBlock] resume];
任务成功提取数据并调用completionBlock
后我想下载来自NSURL
的其他10个资源,这些资源属于数据completionBlock
的一部分。
最好是在每个请求的块中再次调用dataTaskWithURL:completionHandler:
,还是在completionBlock
的循环中阻止网络调用?
谢谢!
答案 0 :(得分:1)
是的,您可以在completionBlock
内拨打其他电话。但是请求不应该是阻塞"而是你只是为附加数据启动额外的异步请求。如果您的模型支持,您希望它们彼此同时运行。如果您按顺序而不是同时发出后续请求,则会产生重大的性能损失。