2017-06-03 87 views
0

這是我在Swift中的第一個項目,所以請耐心等待。Swift:變量值不會傳遞給didSet

punkteLimit應該用值30初始化。每次更改滑塊值時,應該更新變量的值以及標籤。

var punkteLimit: Int = 30 

@IBAction func sliderPunktelimitChanged(_ value: Float) { 
    punkteLimit = Int(value) 
    labelPunktelimit.setText("Punkte-Limit: \(punkteLimit)") 
} 

這似乎工作正常。標籤正確更新,即當我將滑塊更改爲28時,它會顯示「Punkte-Limit:28」。然而,PunkteLimit在下面的部分被固定在30的初始值(對於考慮Punktelimit也是如此,但解決方案應該是相同的)。無論上述變化如何,觸覺反饋都將在gesamtPunkte == 30處觸發。

我使用執行gesamtPunkte + = 1的按鈕來調整值,如果它很重要。

var gesamtPunkte: Int = 0 { 
    didSet { 
     if gesamtPunkte == punkteLimit && considerPunktelimit == true { 
      WKInterfaceDevice.current().play(WKHapticType.stop) 
     } 
     ... 
    } 
} 

我不知道該從哪裏出發。

非常感謝幫助。

回答

0

我通過移動InterfaceController類之外的變量(使它們成爲全局?)來解決問題。我已經閱讀了關於這種方法的各種意見,如果有人想評論爲什麼它不能在課堂上使用,以及是否存在使它們成爲全球性問題,請放心。