Swift:变量值不会延续到didSet

时间:2017-06-03 11:26:21

标签: swift didset

这是我在Swift的第一个项目,所以请耐心等待。

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(对于ConsidePunktelimit也是如此,但解决方案应该相同)。无论上述变化如何,都会在gesamtPunkte == 30触发触觉反馈。

我使用一个执行gesamtPunkte + = 1的按钮来调整值,如果重要的话。

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

我不确定从哪里开始。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

我通过在InterfaceController类之外移动有问题的变量(使它们成为全局?)来解决问题。我对这种方法的看法不一,如果有人想评论为什么它在课堂内不起作用,以及是否有使它们成为全局的问题,请随意。