如何在AFNetworking 2.0中排队批处理操作

时间:2014-10-07 19:34:16

标签: afnetworking

我有这个函数在AFHTTPRequestOperationManager上调用GET方法:

var request:NSMutableURLRequest = ParseAPIClient.sharedClient.GET(className, parameters: parameters, success: { (operation:AFHTTPRequestOperation!, response:AnyObject!) -> Void in
       if response.isKindOfClass(NSDictionary) {
              self.writeJSONResponse(response, toDiskForClassWithName:className)
       } else { NSLog("something happened") }
   }, failure: { (operation:AFHTTPRequestOperation!, error:NSError!) -> Void in
       NSLog("Request for class %@ failed with error: %@", className, error)
   })

这会生成一个使用该请求创建AFHTTPRequestOperation的请求。该方法返回该操作以及对请求的响应。传入它的块将响应写入磁盘。

在旧的AF1.x代码中,我会使用:

SDAFParseAPIClient.sharedClient.enqueueBatchOfHTTPRequestOperations:operations progressBlock:^(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) {
            } completionBlock:^(NSArray *operations) {
                if (!toDelete) {
                    self.processJSONDataRecordsIntoCoreData
                } else {
                    self.processJSONDataRecordsForDeletion
                }
            }];

获取上面创建的操作并在之后执行其他操作的方法。 Iow,我会把数据写入磁盘并用那些self.processJSONDataRecords ...方法解析它。

我不确定新的等价物是什么?

1 个答案:

答案 0 :(得分:1)

AFNetworking 2.0中的等效功能由AFURLConnectionOperation +batchOfRequestOperations:progressBlock:completionBlock:提供。

这里的不同之处在于开发人员最终负责使用NSOperationQueue -addOperations:waitUntilFinished:对批量操作数组进行排队。