首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务完成后BFTASK中的延迟方法

任务完成后BFTASK中的延迟方法
EN

Stack Overflow用户
提问于 2015-04-04 07:48:10
回答 1查看 268关注 0票数 1

我不知道为什么会发生这种情况,但是当我在使用BFTASK的AWS上运行一个查询时,其中的一个方法直到BFTASK处理程序完成很久之后才会完成。NSLog是在正确的时间打印在控制台中的,但是更改UILabel状态的代码要到很久之后才会应用。

例如,我有

代码语言:javascript
复制
    [[dynamoDBObjectMapper query:[UsernameDB class] expression:queryExpression] continueWithBlock:^id(BFTask *task) {

        if (task.error) {

            NSLog(@"Error: [%@]", task.error);

            });

        } else {

//Other code
            if(x  > 0){

                [self notAvailable];

            } else{
                [self available];

            }

        }

打电话

代码语言:javascript
复制
-(void)available{

    NSLog(@"Username Available");
    self.availabilityLabel.text = @"Available";
    self.availabilityLabel.textColor = [UIColor greenColor];

}

现在让我感到困惑的是,NSLOG是在正确的时间打印在控制台中的,但是在调用方法之后很久才会应用UILabel中的更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-04 08:49:57

确保在UI线程(主线程)上更新标签。将它们封装在对主线程的分派异步调用中。

代码语言:javascript
复制
dispatch_async(dispatch_get_main_queue(), ^{
   self.availabilityLabel.text = @"Available";
   self.availabilityLabel.textColor = [UIColor greenColor];
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29444004

复制
相关文章

相似问题

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