iOS 可能的线程问题

标签 ios objective-c iphone xcode

我正在尝试调整 UILabel 的大小以适合其中的文本。事情看起来很简单,但这就是我正在做的:

    [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];
    }

如果我将文本的设置添加调整大小以适应延迟几秒钟的 performSelector,myLabel 会根据需要调整大小。但是我需要标签在游戏数据加载后立即更新。

我尝试在 MainThread 上执行,但没有成功。

有什么想法吗?

最佳答案

首先,任何与 UI 交互的代码都必须在主线程上执行。所以很可能你的问题的一部分来自于不在主线程上。我见过后台线程上的 UI 代码导致的各种奇怪行为。

一旦你在主线程上有了它,你就可以开始诊断真正的问题了。很难说问题出在哪里,但我想到的一件事是,这可能是一个与约束相关的问题。

关于iOS 可能的线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433053/

相关文章:

ios - 无法快速获取我的信息 datatask 3

iphone - OpenGL ES 推荐的背景图像显示方式

iphone - 为什么 UIScrollView 在 ios 6 和 ios 7 中从顶部留出空间

ios - 核心数据 - 获取请求结果与谓词不匹配

ios - 苹果开发者账号和企业账号的区别

ios - 调用“@synthesize slider = _slider;”有什么意义?

iphone - Xcode 语法突出显示的问题

ios - 如果我将我的应用程序移到后台然后在 iOS 中进入前台,则呈现的 View Controller 会被解散

objective-c - 当再次滚动表格 View 时,单元格显示为空白?

iphone - 允许经过身份验证的 IOS Game Center 用户自动进行身份验证