gpt4 book ai didi

ios - 通过函数更新 UILabel ....我缺少什么吗?

转载 作者:行者123 更新时间:2023-11-28 08:20:18 25 4
gpt4 key购买 nike

我之前问过一个与此类似的问题,但这个问题更多的是关于 Swift 的通用语言和基础知识。在下面的代码中,这个功能不应该在技术上起作用并更改标签文本吗?我已经运行了一段时间,每次都失败。我已确保我的所有网点也已正确链接。抱歉,如果答案很明显,我是 Swift 的新手。

func changeLabel() {
DispatchQueue.main.sync(execute: {
self.testText.text = "YES"
})
}

override func viewDidLoad() {
super.viewDidLoad()

let city:String? = nil
if city == nil {
changeLabel()
}
}

最佳答案

viewDidLoad 总是从主线程调用(除非程序员错误地以其他方式执行 - 这完全是另一个问题)。

因此没有必要使用 DispatchQueue.main.sync 来更新标签。事实上,在这种情况下它很糟糕。在主队列中调用 DispatchQueue.main.sync 将导致应用的用户界面挂起,直到应用被终止。

你有两个选择:

  1. 删除 DispatchQueue.main.sync 的使用,因为您发布的代码中不需要它。
  2. sync 更改为 async。这解决了应用程序用户界面挂起的问题,它还允许您从任何队列调用 changeLabel 方法并正常工作。

关于ios - 通过函数更新 UILabel ....我缺少什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com