2017-06-03 54 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类之外的变量(使它们成为全局?)来解决问题。我已经阅读了关于这种方法的各种意见,如果有人想评论为什么它不能在课堂上使用,以及是否存在使它们成为全球性问题,请放心。