0

AFNetworking + SVProgressHUD post用来请求数据。SVProgressHUD如果网络有问题或速度非常慢并且互联网链接已被切断,将始终显示。

如何AFNetworking判断网络问题?还是请求超时?

4

1 回答 1

0

我不确定 SVProgressHUD 的实现是什么,但我在当前的应用程序中使用了一个类似的名为 MBProgressHUD 的实现。希望这个建议仍然适用。

如果我正确理解您的问题,您想知道如果 AFNetworking 调用失败,如何关闭您的 progressHUD?如果这是您的问题,那么您需要做的就是在您的故障块中关闭您的 HUD,如下所示。

MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[navigationController.view addSubview:HUD];

HUD.dimBackground = YES;
[HUD show:YES];

//Set up the request
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"example.com"]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url];

[request setHTTPMethod:@"POST"];

//Set up the operation
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation  alloc] initWithRequest:request];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        // Hide activity indicator after success
        [HUD show:NO];
        [HUD hide:YES];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    // Hide activity indicator after failure
    [HUD show:NO];
    [HUD hide:YES];
}];

// Fire off the operation
[operation start];
于 2013-04-29T16:31:56.223 回答