我在让 MBProgressHUD 正常工作时遇到问题。使用下面的代码,它只是在发出服务器请求后立即显示和隐藏。我理解这是因为请求和加载指示器代码在主线程的同一循环中运行,因此加载指示器的显示直到当前主线程循环迭代之后才会执行。
这是代码。在发出服务器请求时,我该怎么做才能使 MBProgressHUD 显示?此应用程序是用 ARC 制作的。
if ([[[UIApplication sharedApplication] keyWindow] rootViewController].view) { [MBProgressHUD showHUDAddedTo:[[[UIApplication sharedApplication] keyWindow] rootViewController].view animated:YES]; }
NSString *urlString = (get) ? [NSString stringWithFormat:@"%@?action=%@&forumId=%@&%@", kForumDirectorUrl, action, kForumIdentifier, get] :
[NSString stringWithFormat:@"%@?action=%@&forumId=%@", kForumDirectorUrl, action, kForumIdentifier];
NSURL *url = [NSURL URLWithString:urlString];
NSLog(@"%@", url);
id returnObject = (json) ? [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:url] options:0 error:nil] :
[NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil];
if ([[[UIApplication sharedApplication] keyWindow] rootViewController].view) { [MBProgressHUD hideHUDForView:[[[UIApplication sharedApplication] keyWindow] rootViewController].view animated:YES]; }
return returnObject;