使用AFHTTPClient enqueueBatchOfHTTPRequestOperationsWithRequests方法管理AFNetworking多个请求

时间:2013-05-20 00:39:33

标签: ios objective-c multithreading request afnetworking

我想创建一个像FB或Linkedin这样的表格视图幻灯片菜单,我的意思是动态,所以我必须同时提出一些请求。我正在使用AFNetworking。使用名为 YPLHTTPClients 的自定义AFHTTTPClient,它是 AFHTTPClient 子类。在这堂课中,我有两种方法。 SharedClientinitWithBaseURL

我还想在这个类中使用enqueueBatchOfHTTPRequestOperationsWithRequests方法将数据返回到viewController并创建菜单的tableView。

我想调用一个方法,在客户端使用enqueueBatchOfHTTPRequestOperationsWithRequests这个函数并返回一个字典或者我的信息数据,而不是像我这样在ViewController中做所有事情:

 NSMutableArray *mutableRequests = [NSMutableArray array];
    for (NSString *URLString in [NSArray arrayWithObjects:@"users", @"intProjects", nil]) {
        [mutableRequests addObject:[[YPLHTTPClient sharedHTTPClient] requestWithMethod:@"GET" path:URLString parameters:nil]];
    }
    __block NSDictionary *parsedObject1, *parsedObject2;
    [[YPLHTTPClient sharedHTTPClient] enqueueBatchOfHTTPRequestOperationsWithRequests:mutableRequests progressBlock:^(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) {
        NSLog(@"%lu of %lu Completed", (unsigned long)numberOfCompletedOperations, (unsigned long)totalNumberOfOperations);
    } completionBlock:^(NSArray *operations) {
        NSError *thisError;


         parsedObject1 = [NSJSONSerialization JSONObjectWithData:[[operations objectAtIndex:0] responseData] options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&thisError];
        NSLog(@"Completion: %@", parsedObject1 );
        parsedObject2 = [NSJSONSerialization JSONObjectWithData:[[operations objectAtIndex:1] responseData] options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&thisError];
        NSLog(@"Completion: %@", parsedObject2 ); 

我也想知道,在下载这些数据时如何显示和图像。

谢谢

1 个答案:

答案 0 :(得分:0)

我不完全确定你在问什么,但你可以使用类似MBProgressHUD的内容来显示在progressBlock中更新的进度条(progress = numberOfCompletedOperations / totalNumberOfOperations)。