使用NSURLConnection发送一系列HTTP请求的最佳方式

pep*_*psi 6 iphone cocoa http ios

使用的HTTP请求NSURLConnection是事件驱动的.当你需要一个接一个地发出三个请求时,这会让事情变得有些奇怪,其中每个请求都使用前一个请求返回的信息.

我习惯这样做:

response1 = request1();
response2 = request2(response1);
response3 = request3(response2);
Run Code Online (Sandbox Code Playgroud)

但我能找到如何做到这一点的唯一方法NSURLConnection就是connectionDidFinishLoading:做出下一个请求.但是当顺序请求数量增加时,这可能会变得混乱.

使用cocoa处理顺序HTTP请求的惯用方法是什么?

tro*_*ove 7

您可以将请求包装在NSOperation中,然后定义操作依赖项,以便每个请求在执行之前必须等待其相关请求.

来自Apple Docs:

依赖关系是以特定顺序执行操作的便捷方式.您可以使用addDependency:和removeDependency:方法为操作添加和删除依赖项.默认情况下,具有依赖关系的操作对象在其所有依赖操作对象完成执行之前不会被视为就绪.但是,一旦最后一个相关操作完成,操作对象就会准备就绪并且能够执行.