首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCD和进度and

GCD和进度and
EN

Stack Overflow用户
提问于 2014-08-17 20:53:35
回答 3查看 94关注 0票数 0

使用任何形式的progressHUD (SV、MB等),我都会遇到这样的问题,即HUD在显示后被隐藏,或者永久地留在那里。在下面的示例中,HUD将永久保持不变,而不管twitter提要(或其他视图控制器的页面)是否已完成加载。如何在独立线程中的任务完成后使HUD消失?

代码语言:javascript
复制
[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];
        }];

    });        
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-18 15:58:51

应该是这样的:

代码语言:javascript
复制
[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];
      });
});
票数 1
EN

Stack Overflow用户

发布于 2014-08-17 21:51:52

  1. 它不是一个块中的安全捕获self:use:__weak typeof (self) weakSelf = self; out第一个块。
  2. 您正在调用[self.tableView reloadData];,而不是在主线程中;
  3. 这个请求:getUserTimelineWithScreenName可能会在一个错误中完成:在这种情况下,您还没有日志,所以请确保它以成功结束。
票数 1
EN

Stack Overflow用户

发布于 2014-08-17 21:11:50

我观察到有两件事可能是个问题:

  1. 您确定这一行是在主线程中启动的吗? MBProgressHUD showHUDAddedTo:self.view动画:是的;
  2. 你确定这条线路已经启动了吗? MBProgressHUD hideHUDForView:self.view动画:是的;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25353525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档