Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AFNetworking可以处理请求队列吗?_Ios_Ios7_Afnetworking_Afnetworking 2 - Fatal编程技术网

Ios AFNetworking可以处理请求队列吗?

Ios AFNetworking可以处理请求队列吗?,ios,ios7,afnetworking,afnetworking-2,Ios,Ios7,Afnetworking,Afnetworking 2,我在iOS 6上的示例: 需要(按顺序)向服务器发送10个多部分请求。 (因此请求形成一个队列) 应该显示出进展 如果一个请求失败,则所有后续请求都将失败 请求队列应该是可取消的 你能帮我吗?或者我应该尝试用NSO操作构建一些东西并自己运行循环 如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务id。关于线程可见性需要考虑什么? < P>网络可以做到这一点。我建议您使用AFHTTPRequestOperationManager(它本身使用NSOperation),而不是AFHT

我在iOS 6上的示例:

  • 需要(按顺序)向服务器发送10个多部分请求。 (因此请求形成一个队列)
  • 应该显示出进展
  • 如果一个请求失败,则所有后续请求都将失败
  • 请求队列应该是可取消的
你能帮我吗?或者我应该尝试用NSO操作构建一些东西并自己运行循环


如果我需要在这些请求之间传递上下文数据,例如第一个请求生成的事务id。关于线程可见性需要考虑什么?

< P>网络可以做到这一点。我建议您使用AFHTTPRequestOperationManager(它本身使用NSOperation),而不是AFHTTPSessionManager。使用AFHTTPSessionManager有很多方法可以做到这一点,但没有一种方法比操作更优雅

在引擎盖下,没有经理你会怎么做:

您将使用请求序列化程序生成NSMutableURLRequest(例如,
[AFHTTPRequestSerializer-multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:
;还有一个类似的JSON请求序列化程序)

有URL请求后,使用
[AFHTTPRequestOperation-initWithRequest:][/code>进行操作。您还应该设置其完成块

最后,将您的操作添加到
[AFHTTPRequestOperationManager].operationQueue
启动它


现在,您了解了这些基本上是如何协同工作的,下面是一个更简单的方法:

  • 子类
    AFHTTPRequestOperationManager
    ,如果不喜欢默认值,可以选择设置
    requestSerializer
  • 覆盖(或使用新实现进行复制)
    -POST:parameters:constructingBodyWithBlock:success:failure:
    -您要做的不是立即开始操作
  • 设置NSO操作依赖关系链
  • 开始
    第一个

因此,如果我设置[AFHTTPRequestOperationManager manager].operationQueue setMaxConcurrentOperationCount:1,我甚至不需要NSOperation链。是的,假设您以正确的顺序将它们添加到队列中。这在使用AFNetworking 3.0时可能也很有帮助:您需要将AFHTTPSessionManager子类化,而无需将MaxConcurrentOperationCount设置为1,因为它已设置为默认值1。祝你好运。@OhadM在我的应用程序中,需要一次缓存10个文档。如何在没有操作队列的情况下使用AFNetworking 3.0缓存所有文档?