我使用AFNetworking + SVProgressHUD post
请求数据。如果网络出现问题或速度非常慢且互联网链接已断开,则SVProgressHUD
将始终显示。
AFNetworking
如何判断网络问题?或者请求超时?
我不确定SVProgressHUD的实现是什么,但我在当前的应用程序中使用了一个类似的MBProgressHUD。希望这个建议仍然适用。
如果我正确理解你的问题,你想知道如果AFNetworking呼叫失败,如何取消你的进度HUD?如果这是你的问题,那么你所需要做的就是在你的故障块中关闭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];