小编Tom*_*Tom的帖子

NSOperations及其completionBlocks同时运行吗?

我有一堆NSOperations添加到了NSOperationQueue.操作队列maxConcurrentOperationCount设置为1,以便NSOperations一个接一个地运行.

现在,在completionBlock一个NSOperation我想取消所有未决NSOperations调用cancelAllOperationsNSOperationQueue.

这样做安全吗?我可以确定start只有completionBlock在前一个操作完全执行后才调用下一个操作的方法吗?或者执行completionBlock上一个操作和当前操作的任务同时运行?

我之所以要问:我使用AFNetworking来执行一批AFHTTPRequestOperations并且只有在批量的所有先前请求都成功时才执行一个请求.

nsoperation nsoperationqueue afnetworking

5
推荐指数
1
解决办法
2195
查看次数

如何执行一批彼此依赖的AFNetworking请求

我需要执行一系列顺序运行的服务器调用,并且只有在所有先前的请求都成功后才能执行一个请求.

所以,我的想法是AFHTTPRequestOperation为每个请求创建一个并使用它[myAFHTTPClient enqueueBatchOfHTTPRequestOperations:]来解雇它们.

我可以通过调用顺序运行它们
[myAFHTTPClient.operationQueue setMaxConcurrentOperationCount:1]

但是,如果以前的操作成功,我怎样才能确保剩余的操作能够运行?

我试图为操作失败时completionBlock调用的每个操作创建一个[myAFHTTPClient cancelAllOperations],但是queueBlock和队列中的下一个操作同时运行,因此下一个请求可能在被取消之前已经发送到服务器.我该怎么办?

afnetworking

3
推荐指数
1
解决办法
3012
查看次数