【问题标题】:How to use AFNetworking with multi-request?如何将 AFNetworking 与多请求一起使用?
【发布时间】:2015-02-15 13:19:21
【问题描述】:

我同时有一些请求,我想处理它直到它们都完成。 以下是请求:

[self getProfileData];
[self checkNewSystemMessage];
[self checkChatMessage];

getProfileData 中看起来像:

AFHTTPRequestOperationManager* manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval = TIMEOUT_INTERVAL;
NSString * portNumber = [[NSUserDefaults standardUserDefaults] objectForKey:@"portNumber"];

[manager GET:URL_ADDRESS(portNumber,@"JsonEntryManager") parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSLog(@"%@",responseObject);
    //Do something...
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    [self performSelector:@selector(getProfileData) withObject:nil afterDelay:REQUEST_AGAIN_TIME];
}];

其他都是一样的。 当他们都完成后,我想做点什么。我想的唯一方法就是一一请求他们。显然这是一个愚蠢的想法。那我怎么知道结束时间呢?

【问题讨论】:

    标签: afnetworking multitasking


    【解决方案1】:

    在开始任何请求之前初始化计数器:

    int counter = 0;
    

    在每个请求的成功块中,做

    counter++;
    if(counter==3)
    {
        //Do what you need to do when all the request is completed.
        //Make some method for this.
    }
    

    【讨论】:

    • 它几乎可以工作,但是如果两个方法同时结束并且他们想同时更改计数器,那就有问题了。
    • 没错!我还没想好! :)
    【解决方案2】:

    我也在试图弄清楚这一点,但现在对我来说成功的是检查 success AFHTTPRequestOperationManager 的 OperationQueue 内的操作数阻止

    [manager GET:URL_ADDRESS(portNumber,@"JsonEntryManager") parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
        NSLog(@"%@",responseObject);
    
    if ([weakSelf.manager.operationQueue operationCount] == 0) {
           //Do something here when all the operations are done.
        }
    
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        [self performSelector:@selector(getProfileData) withObject:nil afterDelay:REQUEST_AGAIN_TIME];
    }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-17
      • 2019-07-18
      • 2016-09-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 2021-01-11
      相关资源
      最近更新 更多