将字符串分配给UILabel时的延迟

时间:2014-06-17 16:06:50

标签: ios objective-c uilabel

我在我的应用程序中遇到了一个相当令人沮丧的错误。我不确定这是否与我运行Xcode 6.0的事实有关,但我个人认为这与我的代码有关。

问题: 当我通过一种用于更新数据的方法将一对字符串分配给UILabel时,数据实际显示需要30秒。

示例代码:

self.availHours.text = [NSString stringWithFormat:@"%.2f", 24.0 - totalEventHours];

我尝试过的事情: 我已经使用NSLog s将我的代码播种,以查看该方法是否真的需要花费很长时间来计算和更新信息。但根据这些结果,它会在内容出现之前完成 well 。我还注释掉了逻辑并用直接字符串赋值替换了它,但结果仍然相同。

个人结论: 就像内容在重新分配时没有重新加载一样,是否有必要告诉视图以确保它具有当前数据?如果没有必要,那么可能出现这种情况的原因是什么?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

正如我评论的那样,您可能想尝试在主线程上设置标签文本:

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

    // On the main thread
    self.availHours.text = [NSString stringWithFormat:@"%.2f", 24.0 - totalEventHours];

}];