0
我是新来的swift。在我的UI上,我有标签显示一些类实例的值。而且,我有一个增加这些实例的值的类方法。在我调用这个方法之后,我的实例值会更新;但用户界面上的标签保持不变。我怎样才能让这个方法在这些标签中更新我的号码。在方法对变量进行更改后更新UI上的值(Swift 3)
这里是我的ViewController代码:
@IBOutlet weak var displayValue: UILabel! //this is the label that displays newNumber's value
override func viewDidLoad() {
super.viewDidLoad()
dispValue.text = String("\(newNumber.value))")
}
这里是我的代码:
class MyNumbers {
var value = 50
func increaseValue(by: Int){
value += by
}
}
var newNumber = myNumbers()
newNumber.increaseValue(by: 5) //This does increase newNumber's value to 55
//but my label on my UI remains as 50
让我知道这不工作或满足您的需求。如果你清楚,请接受答案。谢谢:) – CoderFrom94
谢谢你的答案。我也可以问使用“DispatchQueue.main.async”的目的是什么,而不仅仅是写“displayValue.text =”\(newNumber.value)“?@ CoderFrom94 –
@HazarPanc,我们期待更新displayValue标签,这样做是一个UI更新,UI更新必须只在主线程中完成,你也可以使用'Thread.isMainThread'来检查你是否已经在主线程中,'DispatchQueue.main.async'将执行main即使当前线程不是主线程也是如此。 – CoderFrom94