6

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

我习惯这样做:

response1 = request1();
response2 = request2(response1);
response3 = request3(response2);

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

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

4

3 回答 3

7

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

来自苹果文档

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

于 2012-05-11T16:52:06.347 回答
0

我建议您使用名为MKNetworkKit的 3rd 方库。它可以为您处理繁重的工作,因此您可以专注于应用程序的关键方面。你可以在这里找到它。

于 2012-05-11T16:51:04.803 回答
0

您可以而且应该使用NSOperationand NSOperationQueues

一个很好的教程可以在这里找到:如何使用 NSOperations 和 NSOperationQueues

于 2013-02-13T22:21:00.617 回答