【问题标题】:Why don't the UITextField and UILabel update when the .text field is changed in a completion block?为什么在完成块中更改 .text 字段时 UITextField 和 UILabel 不更新?
【发布时间】:2014-11-27 00:58:40
【问题描述】:
我有一个视图控制器和一个计算器类。我在视图控制器中有一个计算器实例,并通过该实例调用数据获取方法。这也会更新计算器实例的变量。我想在数据提取完成后更新 UILabel,但是当我包含时
nameOFLabel.text = String(calculatorInstance.updatedValue)
作为数据获取方法的完成处理程序,即使知道值更改,标签在运行时也不会更新。
【问题讨论】:
标签:
ios
swift
uitextfield
uilabel
completionhandler
【解决方案1】:
UI 元素必须在主执行线程上更新。您可以使用 GDC(Grand Central Dispatch)例程来完成此操作。所以试试这个:
dispatch_async(dispatch_get_main_queue(), {
nameOFLabel.text = String(calculatorInstance.updatedValue)
})