我不知道为什么会发生这种情况,但是当我在使用BFTASK的AWS上运行一个查询时,其中的一个方法直到BFTASK处理程序完成很久之后才会完成。NSLog是在正确的时间打印在控制台中的,但是更改UILabel状态的代码要到很久之后才会应用。
例如,我有
[[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];
}
}打电话
-(void)available{
NSLog(@"Username Available");
self.availabilityLabel.text = @"Available";
self.availabilityLabel.textColor = [UIColor greenColor];
}现在让我感到困惑的是,NSLOG是在正确的时间打印在控制台中的,但是在调用方法之后很久才会应用UILabel中的更改。
发布于 2015-04-04 08:49:57
确保在UI线程(主线程)上更新标签。将它们封装在对主线程的分派异步调用中。
dispatch_async(dispatch_get_main_queue(), ^{
self.availabilityLabel.text = @"Available";
self.availabilityLabel.textColor = [UIColor greenColor];
});https://stackoverflow.com/questions/29444004
复制相似问题