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