使用任何形式的progressHUD (SV、MB等),我都会遇到这样的问题,即HUD在显示后被隐藏,或者永久地留在那里。在下面的示例中,HUD将永久保持不变,而不管twitter提要(或其他视图控制器的页面)是否已完成加载。如何在独立线程中的任务完成后使HUD消失?
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
//Sets the auth key (user or app) for the RMACC Twitter Feed
STTwitterAPI *twitter = [STTwitterAPI twitterAPIOSWithFirstAccount];
[twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
[twitter getUserTimelineWithScreenName:@"RMACCNewsNotes" count:10 successBlock:^(NSArray *statuses) {
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
});
self.twitterFeed =[NSMutableArray arrayWithArray:statuses];
[self.tableView reloadData];
} errorBlock:^(NSError *error){ }];
} errorBlock:^(NSError *error) {
[self twitterselfauthrequest];
}];
});
}发布于 2014-08-18 15:58:51
应该是这样的:
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// do all your twitter stuff, including the error checking
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
[MBProgressHUD hideHUDForView:self.view animated:YES];
});
});发布于 2014-08-17 21:51:52
self:use:__weak typeof (self) weakSelf = self; out第一个块。[self.tableView reloadData];,而不是在主线程中;getUserTimelineWithScreenName可能会在一个错误中完成:在这种情况下,您还没有日志,所以请确保它以成功结束。发布于 2014-08-17 21:11:50
我观察到有两件事可能是个问题:
https://stackoverflow.com/questions/25353525
复制相似问题