我正在尝试调整UILabel以适应里面的文本。事情看起来很简单,但这里是我在做什么:iOS可能的线程问题
[GKTurnBasedMatch loadMatchWithID:[matchReceived matchID] withCompletionHandler:^(GKTurnBasedMatch *updatedMatch, NSError *error){
NSPropertyListFormat plf;
NSMutableDictionary* gameData = [NSPropertyListSerialization propertyListWithData:updatedMatch.matchData options:NSPropertyListMutableContainersAndLeaves format:&plf error:nil];
myLabel.text = [gameData objectForKey:@"DictionaryText"];
[myLabel sizeToFit];
}
如果我把文本的设置添加,调整大小根据需要调整myLabel适应一个performSelector用几秒钟的延迟。但是我需要在游戏数据加载后立即更新标签。
我试过对MainThread执行操作,但没有奏效。
任何想法?
正如我在下面回答的评论提到,建成块总是叫上主队列,但实际的请求加载匹配是在后台完成的,这意味着在将控制权交给其完成处理程序之前,该方法需要一点时间才能执行。鉴于* request *需要时间,不一定是UI更新,可能和选项是在代码的早期调用此调用,或者添加某种依赖关系,或者使用占位符,直到数据加载 – 2015-04-03 18:21:48