为什么在完成块中更改.text字段时UITextField和UILabel不会更新?

时间:2014-11-27 00:58:40

标签: ios swift uitextfield uilabel completionhandler

我有一个视图控制器和一个计算器类。我在视图控制器中有一个计算器实例,并通过实例调用数据获取方法。这也会更新计算器实例的变量。我希望在数据提取完成后更新UILabel,但是当我包含

nameOFLabel.text = String(calculatorInstance.updatedValue)

作为数据提取方法的完成处理程序,标签在运行时不会更新,即使知道值更改也是如此。

1 个答案:

答案 0 :(得分:1)

必须在主执行线程上更新UI元素。您可以使用GDC(Grand Central Dispatch)例程来完成此任务。所以试试这个:

dispatch_async(dispatch_get_main_queue(), {
    nameOFLabel.text = String(calculatorInstance.updatedValue)
})