我在我的应用程序中遇到了一个相当令人沮丧的错误。我不确定这是否与我运行Xcode 6.0的事实有关,但我个人认为这与我的代码有关。
问题:
当我通过一种用于更新数据的方法将一对字符串分配给UILabel
时,数据实际显示需要30秒。
示例代码:
self.availHours.text = [NSString stringWithFormat:@"%.2f", 24.0 - totalEventHours];
我尝试过的事情:
我已经使用NSLog
s将我的代码播种,以查看该方法是否真的需要花费很长时间来计算和更新信息。但根据这些结果,它会在内容出现之前完成 well 。我还注释掉了逻辑并用直接字符串赋值替换了它,但结果仍然相同。
个人结论: 就像内容在重新分配时没有重新加载一样,是否有必要告诉视图以确保它具有当前数据?如果没有必要,那么可能出现这种情况的原因是什么?
感谢您的时间。
答案 0 :(得分:2)
正如我评论的那样,您可能想尝试在主线程上设置标签文本:
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// On the main thread
self.availHours.text = [NSString stringWithFormat:@"%.2f", 24.0 - totalEventHours];
}];