更新文本字段ui在迅捷的ios


Answers

UIKit不是线程安全的,只能从主线程更新。 下载是在后台线程完成的,你不能从那里更新UI。 尝试:

快3,快4

DispatchQueue.main.async {
    self.txtTest.text = "Your text"
}

相关的重复问题,但具体的答案

iOS标签不会使用Swift中的函数更新文本

Question

当我使用ios SDK 8的swift时遇到了一个问题

我用回调来获取数据的背景,当数据提取,我想设置一个文本字段值和更新屏幕。

这里是我的代码:

@IBOutlet var txtTest: UITextField!

@IBAction func login() {
    let username = "aaa";
    let password = "bbb";
    var res = ServiceClient.login(username, password: password){
        (res:String, error:String?) -> Void in if(error == nil){
            self.txtTest.text = res;
        }
    }
}

运行这个代码,数据被正确提取,并且txtTest没有更新,但是当我点击txtTest时,这个值将被显示。 那么有什么办法强制更新用户界面? 或发送消息到UI线程?