串行异步网络请求的简单实现

最近在项目中遇到这样一个场景 —— 客户端数据需要一条一条的上传给服务器,且上一条上传成功,才开始上传下一条,如果上一条上传失败,则整个上传终止。实质上这就是一个串行异步网络请求的过程(串行执行一个异步任务序列)。

方案一

使用递归实现,网络请求部分我这里使用AFNetworking,当然也可以用其他的库。

方案二

使用NSOperationQueue,网络请求部分使用NSURLSession,自然也可以使用AFNetworking。

方案三

使用AFNetworking中,AFURLConnectionOperation的方法

  • (NSArray )batchOfRequestOperations:(NSArray )operations
    progressBlock:(void ( ^ )(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock
    completionBlock:(void ( ^ )(NSArray * operations))completionBlock

    配合NSOperationQueue来进行,可以看做方案二的加强版。这里就不提供示例代码了。
avatar

Code4Cocoa

A ThoughWorker