为啥在完成块中更改 .text 字段时 UITextField 和 UILabel 不更新?
Posted
技术标签:
【中文标题】为啥在完成块中更改 .text 字段时 UITextField 和 UILabel 不更新?【英文标题】: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)
作为数据获取方法的完成处理程序,即使知道值更改,标签在运行时也不会更新。
【问题讨论】:
【参考方案1】:UI 元素必须在主执行线程上更新。您可以使用 GDC(Grand Central Dispatch)例程来完成此操作。所以试试这个:
dispatch_async(dispatch_get_main_queue(),
nameOFLabel.text = String(calculatorInstance.updatedValue)
)
【讨论】:
以上是关于为啥在完成块中更改 .text 字段时 UITextField 和 UILabel 不更新?的主要内容,如果未能解决你的问题,请参考以下文章