我使用AFNetworking + SVProgressHUD post
来请求数据。如果网络出现问题或速度非常慢且互联网链接被切断,SVProgressHUD
将始终显示。
AFNetworking
如何判断网络问题?或者请求超时?
答案 0 :(得分: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];